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(); }); }); });