import { render, screen } from '@testing-library/react'
import { describe, it, expect } from 'vitest'
import { ReviewCard } from './ReviewCard'

const mockReview = {
  id: 'r1',
  rating: 4,
  body: 'Excelente local para voar ao amanhecer!',
  createdAt: '2025-06-01T10:00:00Z',
  author: { id: 'u1', name: 'João Silva', image: null },
}

describe('ReviewCard', () => {
  it('renders review body', () => {
    render(<ReviewCard review={mockReview} />)
    expect(screen.getByText(/excelente local/i)).toBeInTheDocument()
  })

  it('renders author name', () => {
    render(<ReviewCard review={mockReview} />)
    expect(screen.getByText('João Silva')).toBeInTheDocument()
  })

  it('renders star rating aria-label', () => {
    render(<ReviewCard review={mockReview} />)
    expect(screen.getByLabelText(/4 estrelas/i)).toBeInTheDocument()
  })

  it('shows fallback name when author is null', () => {
    render(<ReviewCard review={{ ...mockReview, author: null }} />)
    expect(screen.getByText('Utilizador')).toBeInTheDocument()
  })
})
