diff options
Diffstat (limited to 'finished-application/frontend/__tests__/Pagination.test.js')
| -rw-r--r-- | finished-application/frontend/__tests__/Pagination.test.js | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/finished-application/frontend/__tests__/Pagination.test.js b/finished-application/frontend/__tests__/Pagination.test.js index 29a57f9..7117db8 100644 --- a/finished-application/frontend/__tests__/Pagination.test.js +++ b/finished-application/frontend/__tests__/Pagination.test.js @@ -1,20 +1,19 @@ -import React from 'react'; -import { shallow, mount } from 'enzyme'; +import { mount } from 'enzyme'; +import wait from 'waait'; import toJSON from 'enzyme-to-json'; +import Router from 'next/router'; import Pagination, { PAGINATION_QUERY } from '../components/Pagination'; import { MockedProvider } from 'react-apollo/test-utils'; -import wait from 'waait'; -import { fakeItem } from '../lib/testUtils'; - -import Router from 'next/router'; -// mock the router because there isn't really a router instance -Router.router = { push() {}, prefetch() {} }; +Router.router = { + push() {}, + prefetch() {}, +}; function makeMocksFor(length) { return [ { - request: { query: PAGINATION_QUERY, variables: { skip: 0, first: 4 } }, + request: { query: PAGINATION_QUERY }, result: { data: { itemsConnection: { @@ -31,15 +30,14 @@ function makeMocksFor(length) { } describe('<Pagination/>', () => { - it('displays loading message', async () => { + it('displays a loading message', () => { const wrapper = mount( <MockedProvider mocks={makeMocksFor(1)}> <Pagination page={1} /> </MockedProvider> ); - await wait(); - wrapper.update(); - expect(toJSON(wrapper.find('div[data-test="pagination"]'))).toMatchSnapshot(); + const pagination = wrapper.find('[data-test="pagination"]'); + expect(wrapper.text()).toContain('Loading...'); }); it('renders pagination for 18 items', async () => { @@ -51,6 +49,8 @@ describe('<Pagination/>', () => { await wait(); wrapper.update(); expect(wrapper.find('.totalPages').text()).toEqual('5'); + const pagination = wrapper.find('div[data-test="pagination"]'); + expect(toJSON(pagination)).toMatchSnapshot(); }); it('disables prev button on first page', async () => { @@ -61,11 +61,9 @@ describe('<Pagination/>', () => { ); await wait(); wrapper.update(); - // first page expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(true); expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(false); }); - it('disables next button on last page', async () => { const wrapper = mount( <MockedProvider mocks={makeMocksFor(18)}> @@ -74,20 +72,17 @@ describe('<Pagination/>', () => { ); await wait(); wrapper.update(); - // first page expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(false); expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(true); }); - it('enables all buttons on a middle page', async () => { const wrapper = mount( <MockedProvider mocks={makeMocksFor(18)}> - <Pagination page={2} /> + <Pagination page={3} /> </MockedProvider> ); await wait(); wrapper.update(); - // first page expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(false); expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(false); }); |
