import { render, screen } from '@testing-library/react';
import { CompassHeader } from '../CompassHeader';
import styles from '@patternfly/react-styles/css/components/Compass/compass';
test('Renders without children', () => {
render(
);
expect(screen.getByTestId('test-header').firstChild).toBeVisible();
});
test('Renders logo content when provided', () => {
render(Logo content} />);
expect(screen.getByText('Logo content')).toBeVisible();
});
test('Renders nav content when provided', () => {
render(Nav content} />);
expect(screen.getByText('Nav content')).toBeVisible();
});
test('Renders profile content when provided', () => {
render(Profile content} />);
expect(screen.getByText('Profile content')).toBeVisible();
});
test('Renders all content when all props are provided', () => {
render(Logo} nav={Nav
} profile={Profile
} />);
expect(screen.getByText('Logo')).toBeVisible();
expect(screen.getByText('Nav')).toBeVisible();
expect(screen.getByText('Profile')).toBeVisible();
});
test(`Renders logo with ${styles.compass}__logo class`, () => {
render(Logo} />);
expect(screen.getByText('Logo').parentElement).toHaveClass(`${styles.compass}__logo`);
});
test(`Renders nav with ${styles.compassNav} class`, () => {
render(Nav} />);
expect(screen.getByText('Nav').parentElement).toHaveClass(styles.compassNav);
});
test(`Renders profile with ${styles.compassProfile} class`, () => {
render(Profile} />);
expect(screen.getByText('Profile').parentElement).toHaveClass(styles.compassProfile);
});
test('Matches the snapshot', () => {
const { asFragment } = render(
Logo} nav={Nav
} profile={Profile
} />
);
expect(asFragment()).toMatchSnapshot();
});