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',
})
})
})