import * as React from 'react'
import { render } from '@testing-library/react'
import { Text, type AllowedTextTags, type TextVariants } from '.'
describe('', () => {
describe('changes rendered HTML element when passed tag', () => {
const testCases: TextVariants[] = ['intro-lede', 'body', 'small', 'extra-small']
testCases.forEach((variant) => {
it(`renders the correct element for `, () => {
const textMock = render(
Example
,
)
expect(textMock.getByText('Example').tagName).toBe('DIV')
})
})
})
it('passes through data attributes', () => {
const { getByTestId } = render(
Example
,
)
expect(getByTestId('test-id')).toBeInTheDocument()
})
describe('defaults to the correct HTML element', () => {
type TestObject = { variant: TextVariants; el: AllowedTextTags }
const testCases: TestObject[] = [
{ variant: 'intro-lede', el: 'p' },
{ variant: 'body', el: 'p' },
{ variant: 'small', el: 'p' },
{ variant: 'extra-small', el: 'p' },
]
testCases.forEach(({ variant, el }) => {
it(`renders the correct element for `, () => {
const textMock = render(Example)
expect(textMock.getByText('Example').tagName.toLowerCase()).toBe(el)
})
})
})
})