import { shallow, ShallowWrapper } from 'enzyme'; import { DropdownItem } from 'reactstrap'; import PaginationDropdown from '../../src/utils/PaginationDropdown'; describe('', () => { const setValue = jest.fn(); let wrapper: ShallowWrapper; beforeEach(() => { wrapper = shallow(); }); afterEach(jest.clearAllMocks); afterEach(() => wrapper?.unmount()); it('renders expected amount of items', () => { const items = wrapper.find(DropdownItem); expect(items).toHaveLength(6); }); it.each([ [ 0, 10 ], [ 1, 50 ], [ 2, 100 ], [ 3, 200 ], [ 5, Infinity ], ])('sets expected value when an item is clicked', (index, expectedValue) => { const item = wrapper.find(DropdownItem).at(index); expect(setValue).not.toHaveBeenCalled(); item.simulate('click'); expect(setValue).toHaveBeenCalledWith(expectedValue); }); });