summaryrefslogtreecommitdiffstats
path: root/finished-application/frontend/__tests__/Pagination.test.js
diff options
context:
space:
mode:
authorRandy Ridge <randyridge@gmail.com>2018-09-14 20:01:25 -0400
committerGitHub <noreply@github.com>2018-09-14 20:01:25 -0400
commit908180c77cd38011eeedcae949613da2a3391e5e (patch)
treeb59bf1aae819a04d453cde72f6e601f5561a740f /finished-application/frontend/__tests__/Pagination.test.js
parent1f6667d233a4a2e9df977204d83a8f749c050c75 (diff)
parentb3bebda57ba187b7fa10398054b54c05d3fd3555 (diff)
Merge branch 'master' into randyridge/our
Diffstat (limited to 'finished-application/frontend/__tests__/Pagination.test.js')
-rw-r--r--finished-application/frontend/__tests__/Pagination.test.js33
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);
});