import * as React from 'react';
import { renderHook } from '@testing-library/react-hooks';
import { Text } from '../Text';
import render from '../../utils/_tests/render';
describe('props', () => {
it('should render correctly', () => {
const { container } = render(Hello world);
expect(container.firstChild).toMatchSnapshot();
});
it('should render correctly with CSS props', () => {
const { container } = render(Hello world);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('composition', () => {
describe('hook', () => {
it('should return with Text props', () => {
const { result } = renderHook(() => Text.useProps());
expect(result.current).toMatchSnapshot();
});
});
describe('render props', () => {
it('should render correctly', () => {
const { container } = render({(TextProps) => Hello world});
expect(container.firstChild).toMatchSnapshot();
});
});
});
describe('theming', () => {
it('Text.styles.base should render correctly', () => {
const { container } = render(hello world, {
theme: { Text: { styles: { base: { backgroundColor: 'red' } } } },
});
expect(container.firstChild).toMatchSnapshot();
});
it('Text.styles.base should render correctly with default font', () => {
const { container } = render(hello world, {
theme: {
fonts: { default: 'default', heading: 'heading' },
Text: { styles: { base: { backgroundColor: 'red' } } },
},
});
expect(container.firstChild).toMatchSnapshot();
});
it('Text.styles.base should render correctly with heading font', () => {
const { container } = render(hello world, {
theme: {
fonts: { default: 'default', heading: 'heading' },
Text: { styles: { base: { backgroundColor: 'red' } } },
},
});
expect(container.firstChild).toMatchSnapshot();
});
});
describe('defaultProps', () => {
it('should render correctly for color', () => {
const { container } = render(hello world, {
theme: { Text: { defaultProps: { color: 'primary' } } },
});
expect(container.firstChild).toMatchSnapshot();
});
});