import { render } from '@testing-library/react'
import TextField from '.'
import '@testing-library/jest-dom'
describe('TextField component', () => {
it('should not render prefix and suffix when not provided', () => {
const { container } = render()
// prefix and suffix elements should not be rendered
const prefixElement = container.querySelector('.charcoal-text-field-prefix')
const suffixElement = container.querySelector('.charcoal-text-field-suffix')
expect(prefixElement).toBeNull()
expect(suffixElement).toBeNull()
})
test.each([
[null, 'null'],
[undefined, 'undefined'],
['', 'empty string'],
[false, 'boolean false'],
[0, 'zero'],
])(
'should not render prefix when value is falsy (%s: %s)',
(prefixValue, _desc) => {
const { container } = render()
const prefixElement = container.querySelector('.charcoal-text-prefix')
expect(prefixElement).toBeNull()
},
)
test.each([
[null, 'null'],
[undefined, 'undefined'],
['', 'empty string'],
[false, 'boolean false'],
[0, 'zero'],
])(
'should not render suffix when value is falsy (%s: %s) and showCount is false',
(suffixValue, _desc) => {
const { container } = render(
,
)
const suffixElement = container.querySelector(
'.charcoal-text-field-suffix',
)
expect(suffixElement).toBeNull()
},
)
it('should render prefix and suffix when provided as truthy values', () => {
const prefixContent = 'Test Prefix'
const suffixContent = 'Test Suffix'
const { container, getByText } = render(
{prefixContent}}
suffix={{suffixContent}}
/>,
)
const prefixElement = container.querySelector('.charcoal-text-field-prefix')
const suffixElement = container.querySelector('.charcoal-text-field-suffix')
expect(prefixElement).not.toBeNull()
expect(suffixElement).not.toBeNull()
// Verify text content
expect(getByText(prefixContent)).toBeInTheDocument()
expect(getByText(suffixContent)).toBeInTheDocument()
})
})