import React from 'react'
import {render, screen} from '@testing-library/react'
import {FormField} from '../FormField'
describe('FormField', () => {
it('should include an error icon when there is an error message', () => {
render(
,
)
// This component enhances error messages to include an icon, so we check if an SVG exists
expect(
screen
.getAllByRole('presentation', {hidden: true})
.find(el => el.tagName === 'svg' && el.getAttribute('name') === 'IconWarning'),
).toBeDefined()
expect(screen.getByText(/test error message/i)).toBeInTheDocument()
})
it('should render the label correctly', () => {
render()
expect(screen.getByText(/test label/i)).toBeInTheDocument()
})
it('should render an asterisk for required fields', () => {
render()
const label = screen.getByText(/required field/i)
expect(label).toBeInTheDocument()
expect(screen.getByText(/^\*$/)).toBeInTheDocument()
})
it('should not render asterisk when label is an empty string', () => {
render()
const label = screen.queryByText(/^\*$/)
expect(label).not.toBeInTheDocument()
})
})