import { render, screen } from '@testing-library/react';
import { Masthead, MastheadMain, MastheadLogo, MastheadContent, MastheadBrand, MastheadToggle } from '../index';
import styles from '@patternfly/react-styles/css/components/Masthead/masthead';
describe('Masthead', () => {
test('verify basic', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify full structure', () => {
const { asFragment } = render(
Toggle
Logo
Content
);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom class', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify inline display breakpoints', () => {
const { asFragment } = render(
test
);
expect(asFragment()).toMatchSnapshot();
});
test('verify stack display breakpoints', () => {
const { asFragment } = render(
test
);
expect(asFragment()).toMatchSnapshot();
});
Object.values(['insetNone', 'insetXs', 'insetSm', 'insetMd', 'insetLg', 'insetXl', 'inset2xl', 'inset3xl'] as [
'insetNone',
'insetXs',
'insetSm',
'insetMd',
'insetLg',
'insetXl',
'inset2xl',
'inset3xl'
]).forEach((inset) => {
test(`verify ${inset} inset breakpoints`, () => {
const { asFragment } = render(
test
);
expect(asFragment()).toMatchSnapshot();
});
});
test(`Renders with ${styles.modifiers.docked} class when variant is docked`, () => {
render(
test
);
expect(screen.getByTestId('masthead')).toHaveClass(styles.modifiers.docked);
});
test(`Does not render with ${styles.modifiers.docked} class when variant is default`, () => {
render(
test
);
expect(screen.getByTestId('masthead')).not.toHaveClass(styles.modifiers.docked);
});
test(`Does not render with ${styles.modifiers.docked} class when variant is not passed`, () => {
render(test);
expect(screen.getByTestId('masthead')).not.toHaveClass(styles.modifiers.docked);
});
});
describe('MastheadLogo', () => {
test('verify basic', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom class', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify default component', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom component', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify anchor component with href', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test(`Renders with ${styles.modifiers.compact} class when isCompact is true`, () => {
render(
test
);
expect(screen.getByTestId('compact-logo')).toHaveClass(styles.modifiers.compact);
});
test(`Does not render with ${styles.modifiers.compact} class when isCompact is false`, () => {
render(
test
);
expect(screen.getByTestId('logo')).not.toHaveClass(styles.modifiers.compact);
});
test(`Does not render with ${styles.modifiers.compact} class when isCompact is not passed`, () => {
render(test);
expect(screen.getByTestId('logo')).not.toHaveClass(styles.modifiers.compact);
});
});
describe('MastheadContent', () => {
test('verify basic', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom class', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
});
describe('MastheadBrand', () => {
test('verify basic', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom class', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
});
describe('MastheadToggle', () => {
test('verify basic', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
test('verify custom class', () => {
const { asFragment } = render(test);
expect(asFragment()).toMatchSnapshot();
});
});