import React from 'react';
import renderWithTheme from '../../../../testUtils/renderWithTheme';
import Typography from '../..';
const { Text } = Typography;
describe('rendering', () => {
it('shows content', () => {
const { getByText } = renderWithTheme(Content);
expect(getByText('Content')).toBeInTheDocument();
});
});
describe('with fontWeight', () => {
it.each`
fontWeight
${'regular'}
${'light'}
${'semi-bold'}
${'bold'}
`('renders correctly with $fontWeight', ({ fontWeight }) => {
const { container } = renderWithTheme(
Content
);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('with intent', () => {
it.each`
intent
${'main'}
${'body'}
${'subdued'}
${'primary'}
${'success'}
${'danger'}
${'warning'}
${'error'}
${'white'}
`('renders correctly with $intent', ({ intent }) => {
const { container } = renderWithTheme(Content);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('with fontSize', () => {
it.each`
fontSize
${10}
${12}
${14}
${16}
`('renders correctly with $fontSize', ({ fontSize }) => {
const { container } = renderWithTheme(
Content
);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('with tagName', () => {
it.each`
tagName | renderedAs
${'div'} | ${'div'}
${'p'} | ${'p'}
${'span'} | ${'span'}
${'label'} | ${'label'}
`('renders correctly with $tagName', ({ tagName, renderedAs }) => {
const { container } = renderWithTheme(
Content
);
expect(container.querySelector(renderedAs)).toBeDefined();
});
});
describe('nested typography', () => {
it('applies correct styling on nested element', () => {
const { container } = renderWithTheme(
A url
);
expect(container.firstChild).toMatchSnapshot();
});
});