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

describe('Textarea', () => {
  it('associates with Field label for an accessible name', () => {
    render(
      <Field label="Bio">
        <Textarea />
      </Field>,
    )
    const textarea = screen.getByRole('textbox', { name: 'Bio' })
    expect(textarea.tagName).toBe('TEXTAREA')
    expect(screen.getByText('Bio').getAttribute('for')).toBe(textarea.getAttribute('id'))
  })

  it('marks invalid state via aria-invalid (edge: explicit invalid prop)', () => {
    render(<Textarea aria-label="Notes" invalid />)
    expect(screen.getByRole('textbox', { name: 'Notes' }).getAttribute('aria-invalid')).toBe('true')
  })
})
