import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
import { CollapsibleList, CollapsibleListItem } from '.';
describe('CollapsibleList', () => {
describe('given basic props', () => {
it('should handle onClick', async () => {
render(
(
Header 1
)}
>
Item 1
,
);
expect(screen.getByRole('list')).not.toBeVisible();
await userEvent.click(screen.getByText('Header 1'));
expect(screen.queryByRole('list')).toBeVisible();
});
});
describe('given is not initially collapsed', () => {
it('should render the component', () => {
render(
(
Header 1
)}
>
Item 1
,
);
expect(screen.getByRole('list')).toBeVisible();
});
});
describe('given a footer prop', () => {
it('should handle onClick', async () => {
render(
Load more}
renderHeader={(toggle) => (
Header 1
)}
>
Item 1
,
);
expect(
screen.getByRole('button', { name: 'Load more' }),
).not.toBeVisible();
await userEvent.click(screen.getByText('Header 1'));
expect(screen.queryByRole('button', { name: 'Load more' })).toBeVisible();
});
});
});