import { Display, Text } from './Text' import { theme } from '@/design-system' import { cleanup, render } from '@/utils/testUtils' afterEach(cleanup) console.error = jest.fn() console.warn = jest.fn() const defaultTextStyles = { color: theme.light.colors.text.primary, fontFamily: 'Inter_Regular', fontSize: 16, fontWeight: '400', textTransform: 'none', } describe('Text', () => { it('renders correctly text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World')).toBeDefined() }) it('renders correctly with underline', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textDecorationLine: 'underline', }) }) it('renders correctly with bold text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontWeight: 'bold', }) }) it('renders correctly with italic text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontStyle: 'italic', }) }) it('renders correctly with capitalized text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textTransform: 'capitalize', }) }) it('renders correctly with uppercase text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textTransform: 'uppercase', }) }) it('renders correctly with lowercase text', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textTransform: 'lowercase', }) }) it('renders correctly with a custom font size', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontSize: 20, textTransform: 'none', }) }) it('renders correctly with a custom color', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, color: theme.light.colors.text.error.primary, textTransform: 'none', }) }) it('renders correctly with a custom text alignment', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textAlign: 'center', }) }) it('renders correctly with a custom text decoration', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, textDecorationLine: 'line-through', }) }) it('renders correctly with a custom font weight', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontWeight: 'bold', }) }) it('renders correctly with multiple styles', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontStyle: 'italic', fontWeight: 'bold', color: theme.light.colors.text.error.primary, textDecorationLine: 'underline', }) }) it('renders correctly with variant LgRegular (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 48, fontWeight: '400', }) }) it('renders correctly compound Text.LgRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 48, fontWeight: '400', }) }) it('renders correctly with variant LgBold (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 48, fontWeight: '700', }) }) it('renders correctly compound Display.LgBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 48, fontWeight: '700', }) }) it('renders correctly with variant H2', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 36, fontWeight: '400', }) }) it('renders correctly compound Display.H2', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 36, fontWeight: '400', }) }) it('renders correctly with variant MdBold (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 36, fontWeight: '700', }) }) it('renders correctly compound Display.MdBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 36, fontWeight: '700', }) }) it('renders correctly with variant SmRegular (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 30, fontWeight: '400', }) }) it('renders correctly compound Display.SmRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 30, fontWeight: '400', }) }) it('renders correctly with variant SmBold (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 30, fontWeight: '700', }) }) it('renders correctly compound Display.SmBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 30, fontWeight: '700', }) }) it('renders correctly with variant XsRegular (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 24, fontWeight: '400', }) }) it('renders correctly compound Display.XsRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 24, fontWeight: '400', }) }) it('renders correctly with variant XsBold (Display)', () => { const { getByText } = render( Hello World ) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 24, fontWeight: '700', }) }) it('renders correctly compound Display.XsBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 24, fontWeight: '700', }) }) it('renders correctly with variant XlRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 20, fontWeight: '400', }) }) it('renders correctly compound Text.XlRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 20, fontWeight: '400', }) }) it('renders correctly with variant XlBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 20, fontWeight: '700', }) }) it('renders correctly compound Text.XlBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 20, fontWeight: '700', }) }) it('renders correctly with variant LgRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 18, fontWeight: '400', }) }) it('renders correctly compound Text.LgRegular', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Regular', fontSize: 18, fontWeight: '400', }) }) it('renders correctly with variant LgBold', () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 18, fontWeight: '700', }) }) it('renders correctly compound Text.LgBold', async () => { const { getByText } = render(Hello World) expect(getByText('Hello World').props.style).toStrictEqual({ ...defaultTextStyles, fontFamily: 'Inter_Bold', fontSize: 18, fontWeight: '700', }) }) })