diff --git a/__tests__/components/Pagination.test.jsx b/__tests__/components/Pagination.test.jsx new file mode 100644 index 0000000000..7158c04471 --- /dev/null +++ b/__tests__/components/Pagination.test.jsx @@ -0,0 +1,72 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import Pagination from '../../src/components/Pagination'; + +describe('', () => { + const noop = () => {}; + + let pagination; + + afterEach(() => { + if (toolbar) { + pagination.unmount(); + pagination = null; + } + }); + + test('it triggers the expected callbacks on next and last', () => { + const next = 'button[aria-label="next"]'; + const last = 'button[aria-label="last"]'; + + const onSetPage = jest.fn(); + + pagination = mount( + + ); + + pagination.find(next).simulate('click'); + + expect(onSetPage).toHaveBeenCalledTimes(1); + expect(onSetPage).toBeCalledWith(2, 5); + + pagination.find(last).simulate('click'); + + expect(onSetPage).toHaveBeenCalledTimes(2); + expect(onSetPage).toBeCalledWith(5, 5); + }); + + test('it triggers the expected callback on previous and first', () => { + const previous = 'button[aria-label="previous"]'; + const first = 'button[aria-label="first"]'; + + const onSetPage = jest.fn(); + + pagination = mount( + + ); + + pagination.find(previous).simulate('click'); + + expect(onSetPage).toHaveBeenCalledTimes(1); + expect(onSetPage).toBeCalledWith(4, 5); + + pagination.find(first).simulate('click'); + + expect(onSetPage).toHaveBeenCalledTimes(2); + expect(onSetPage).toBeCalledWith(1, 5); + }); +});