import { fireEvent, render, screen } from '@testing-library/react';
import GithubSlugger from 'github-slugger';
import { PropsWithChildren } from 'react';
import { Collapsible } from '.';
import { HeadingManager } from '~/common/headingManager';
import { HeadingsContext } from '~/components/page-higher-order/withHeadingManager';
const prepareHeadingManager = () => {
const headingManager = new HeadingManager(new GithubSlugger(), { headings: [] });
return headingManager;
};
const WrapWithContext = ({ children }: PropsWithChildren) => {
const headingManager = prepareHeadingManager();
return {children};
};
describe('Collapsible', () => {
it('hides content by default', () => {
render(
Content
);
expect(screen.getByText('Summary')).toBeVisible();
expect(screen.getByText('Content')).not.toBeVisible();
});
it('shows content when opened', () => {
render(
Content
);
fireEvent.click(screen.getByText('Summary'));
expect(screen.getByText('Summary')).toBeVisible();
expect(screen.getByText('Content')).toBeVisible();
});
it('shows content when rendered with open', () => {
render(
Content
);
expect(screen.getByText('Summary')).toBeVisible();
expect(screen.getByText('Content')).toBeVisible();
});
});