diff --git a/test/utils/PaginationDropdown.test.tsx b/test/utils/PaginationDropdown.test.tsx new file mode 100644 index 00000000..6c76f7cc --- /dev/null +++ b/test/utils/PaginationDropdown.test.tsx @@ -0,0 +1,35 @@ +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()); + + test('expected amount of items is rendered', () => { + const items = wrapper.find(DropdownItem); + + expect(items).toHaveLength(6); + }); + + test.each([ + [ 0, 10 ], + [ 1, 50 ], + [ 2, 100 ], + [ 3, 200 ], + [ 5, Infinity ], + ])('expected value is set 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); + }); +});