From a7163eced037a134eda9d5ea7a57bb6b3337a416 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 18:00:59 -0400 Subject: [PATCH 1/9] Fixing inversion --- src/infrastructure/RequestHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/infrastructure/RequestHelper.js b/src/infrastructure/RequestHelper.js index 79cdacb7..45055319 100644 --- a/src/infrastructure/RequestHelper.js +++ b/src/infrastructure/RequestHelper.js @@ -70,7 +70,7 @@ async function getPaginated(service, endpoint, options = {}) { const data = [...response.body, ...more]; - if (!queryOptions.page && showPagination) { + if (queryOptions.page && showPagination) { return { data, pagination: { From d4518e237c0740f09726ef50e0ac39c92abfd9cc Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 21:15:46 -0400 Subject: [PATCH 2/9] Adding tests and updating pagination properties --- README.md | 5 +- src/infrastructure/RequestHelper.js | 15 ++- test/tests/infrastructure/RequestHelper.js | 136 +++++++++++++++++++++ 3 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 test/tests/infrastructure/RequestHelper.js diff --git a/README.md b/README.md index b8ced9aa..f52876d7 100644 --- a/README.md +++ b/README.md @@ -360,11 +360,12 @@ data: [ ... ], pagination: { + total: 20, next: 4, current: 2, - perPage: 3, previous: 1, - total: 3, + perPage: 3, + totalPages: 3, } ``` diff --git a/src/infrastructure/RequestHelper.js b/src/infrastructure/RequestHelper.js index 45055319..7f8847b0 100644 --- a/src/infrastructure/RequestHelper.js +++ b/src/infrastructure/RequestHelper.js @@ -22,12 +22,16 @@ function defaultRequest( }; if (body) params.body = Humps.decamelizeKeys(body); + if (qs) { if (useXMLHttpRequest) { // The xhr package doesn't have a way of passing in a qs object until v3 params.url = URLJoin(params.url, `?${QS.stringify(Humps.decamelizeKeys(qs))}`); - } else params.qs = Humps.decamelizeKeys(qs); + } else { + params.qs = Humps.decamelizeKeys(qs); + } } + if (formData) params.formData = formData; params.resolveWithFullResponse = resolveWithFullResponse; @@ -61,24 +65,27 @@ async function getPaginated(service, endpoint, options = {}) { const page = response.headers['x-page']; const underMaxPageLimit = maxPages ? page < maxPages : true; let more = []; + let data; // If not looking for a singular page and still under the max pages limit // AND their is a next page, paginate if (!queryOptions.page && underMaxPageLimit && links.next) { more = await getPaginated(service, links.next.url.replace(service.url, ''), options); + data = [...response.body, ...more]; + }else { + data = response.body; } - const data = [...response.body, ...more]; - if (queryOptions.page && showPagination) { return { data, pagination: { + total: response.headers['x-total'] perPage: response.headers['x-per-page'], next: response.headers['x-next-page'], current: response.headers['x-page'], previous: response.headers['x-prev-page'], - total: response.headers['x-total-pages'], + totalPages: response.headers['x-total-pages'], }, }; } diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js new file mode 100644 index 00000000..818e5ea3 --- /dev/null +++ b/test/tests/infrastructure/RequestHelper.js @@ -0,0 +1,136 @@ +import { RequestHelper } from '../../../src/infrastructure'; + +const mockService = { + url: 'testing', + headers: {}, + requester: { + get: () => ({ + body: { + prop1: 5, + prop2: 'test property' + }, + headers: { + 'X-Page': 1, + 'X-Total-Pages': 1 + } + }) + } +}; + +const mockService2 = { + url: 'testing', + headers: {}, + requester: { + get: ({url, qs}) => { + if(qs.page) url+=`page=${qs.page}`; + + const page1 = { + body: [{ + prop1: 1, + prop2: 'test property1' + }, + { + prop1: 2, + prop2: 'test property2' + }], + headers: { + link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="next", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, + 'x-next-page': 2, + 'x-page': 1, + 'x-per-page': 2, + 'x-prev-page': '', + 'x-total': 4, + 'x-total-pages': 2, + } + } + + const page2 = { + body: [{ + prop1: 3, + prop2: 'test property3' + }, + { + prop1: 4, + prop2: 'test property4' + }], + headers: { + link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="prev", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, + 'x-next-page': '', + 'x-page': 2, + 'x-per-Page': 2, + 'x-prev-Page': 1, + 'x-total': 4, + 'x-total-Pages': 2, + } + } + + if(url.includes('page=2')) return page2; + + return page1; + } + } +}; + +describe('RequestHelper.get()', () => { + it('Should respond with an object', async () => { + const response = await RequestHelper.get(mockService, 'https://www.test.com'); + + expect(response.prop1).toBe(5); + expect(response.prop2).toBe('test property'); + }); + + it('Should be paginated when links are present', async () => { + const response = await RequestHelper.get(mockService2, 'https://www.test.com'); + + response.forEach((l, index) => { + expect(l.prop1).toBe(1 + index ) + expect(l.prop2).toBe(`test property${1 + index}`) + }) + }); + + it('Should be paginated but limited by the maxPages option', async () => { + const response = await RequestHelper.get(mockService2, 'https://www.test.com', { maxPages: 1 }); + + expect(response.length).toBe(2); + expect(response[0].prop1).toBe(1); + + response.forEach((l, index) => { + expect(l.prop1).toBe(1 + index ) + expect(l.prop2).toBe(`test property${1 + index}`) + }) + }); + + it('Should be paginated but limited by the page option', async () => { + const response = await RequestHelper.get(mockService2, 'https://www.test.com', { page: 2 }); + + expect(response.length).toBe(2); + expect(response[0].prop1).toBe(3); + + response.forEach((l, index) => { + expect(l.prop1).toBe(3 + index) + expect(l.prop2).toBe(`test property${3 + index}`) + }) + }); + + it('Should show the pagination information when the page option is given', async () => { + const response = await RequestHelper.get(mockService2, 'https://www.test.com', { page: 2, showPagination: true}); + + expect(response.data).toBeDefined(); + expect(response.data.length).toBe(2); + expect(response.data[0].prop1).toBe(3); + + response.data.forEach((l, index) => { + expect(l.prop1).toBe(3 + index) + expect(l.prop2).toBe(`test property${3 + index}`) + }) + + expect(response.pagination).toMatchObject({ + total: 4, + previous: 1, + current: 2, + next: '', + perPage: 2, + totalPages: 2 + }) + }); +}); From 20ce703a2eb2a88bc83e6e5a3460ca4e08807ef7 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 21:49:34 -0400 Subject: [PATCH 3/9] Updating tests --- src/infrastructure/RequestHelper.js | 8 ++++---- test/tests/infrastructure/RequestHelper.js | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/infrastructure/RequestHelper.js b/src/infrastructure/RequestHelper.js index 7f8847b0..a9ebe3c8 100644 --- a/src/infrastructure/RequestHelper.js +++ b/src/infrastructure/RequestHelper.js @@ -80,11 +80,11 @@ async function getPaginated(service, endpoint, options = {}) { return { data, pagination: { - total: response.headers['x-total'] + total: response.headers['x-total'], + next: response.headers['x-next-page'] || null, + current: response.headers['x-page'] || null, + previous: response.headers['x-prev-page'] || null, perPage: response.headers['x-per-page'], - next: response.headers['x-next-page'], - current: response.headers['x-page'], - previous: response.headers['x-prev-page'], totalPages: response.headers['x-total-pages'], }, }; diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index 818e5ea3..edfd47f8 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -57,10 +57,10 @@ const mockService2 = { link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="prev", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, 'x-next-page': '', 'x-page': 2, - 'x-per-Page': 2, - 'x-prev-Page': 1, + 'x-per-page': 2, + 'x-prev-page': 1, 'x-total': 4, - 'x-total-Pages': 2, + 'x-total-pages': 2, } } @@ -128,7 +128,7 @@ describe('RequestHelper.get()', () => { total: 4, previous: 1, current: 2, - next: '', + next: null, perPage: 2, totalPages: 2 }) From fd79421e5a572b98faad3dd7d6f8b7b9f60c3724 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:19:52 -0400 Subject: [PATCH 4/9] Remove some white space --- src/infrastructure/RequestHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/infrastructure/RequestHelper.js b/src/infrastructure/RequestHelper.js index a9ebe3c8..16b7583d 100644 --- a/src/infrastructure/RequestHelper.js +++ b/src/infrastructure/RequestHelper.js @@ -75,7 +75,7 @@ async function getPaginated(service, endpoint, options = {}) { }else { data = response.body; } - + if (queryOptions.page && showPagination) { return { data, From da8c8313ea5a9423bb17c22c6c0470cd25272e30 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:25:10 -0400 Subject: [PATCH 5/9] Linting --- src/infrastructure/RequestHelper.js | 4 +- test/tests/infrastructure/RequestHelper.js | 246 +++++++++++---------- 2 files changed, 136 insertions(+), 114 deletions(-) diff --git a/src/infrastructure/RequestHelper.js b/src/infrastructure/RequestHelper.js index 16b7583d..e4e6332f 100644 --- a/src/infrastructure/RequestHelper.js +++ b/src/infrastructure/RequestHelper.js @@ -72,10 +72,10 @@ async function getPaginated(service, endpoint, options = {}) { if (!queryOptions.page && underMaxPageLimit && links.next) { more = await getPaginated(service, links.next.url.replace(service.url, ''), options); data = [...response.body, ...more]; - }else { + } else { data = response.body; } - + if (queryOptions.page && showPagination) { return { data, diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index edfd47f8..022e6578 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -1,136 +1,158 @@ -import { RequestHelper } from '../../../src/infrastructure'; +import { RequestHelper } from "../../../src/infrastructure"; const mockService = { - url: 'testing', - headers: {}, - requester: { - get: () => ({ - body: { - prop1: 5, - prop2: 'test property' - }, - headers: { - 'X-Page': 1, - 'X-Total-Pages': 1 - } - }) - } + url: "testing", + headers: {}, + requester: { + get: () => ({ + body: { + prop1: 5, + prop2: "test property" + }, + headers: { + "X-Page": 1, + "X-Total-Pages": 1 + } + }) + } }; const mockService2 = { - url: 'testing', - headers: {}, - requester: { - get: ({url, qs}) => { - if(qs.page) url+=`page=${qs.page}`; + url: "testing", + headers: {}, + requester: { + get: ({ url, qs }) => { + if (qs.page) url += `page=${qs.page}`; - const page1 = { - body: [{ - prop1: 1, - prop2: 'test property1' - }, - { - prop1: 2, - prop2: 'test property2' - }], - headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="next", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, - 'x-next-page': 2, - 'x-page': 1, - 'x-per-page': 2, - 'x-prev-page': '', - 'x-total': 4, - 'x-total-pages': 2, - } - } - - const page2 = { - body: [{ - prop1: 3, - prop2: 'test property3' - }, - { - prop1: 4, - prop2: 'test property4' - }], - headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="prev", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, - 'x-next-page': '', - 'x-page': 2, - 'x-per-page': 2, - 'x-prev-page': 1, - 'x-total': 4, - 'x-total-pages': 2, - } - } + const page1 = { + body: [ + { + prop1: 1, + prop2: "test property1" + }, + { + prop1: 2, + prop2: "test property2" + } + ], + headers: { + link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="next", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, + "x-next-page": 2, + "x-page": 1, + "x-per-page": 2, + "x-prev-page": "", + "x-total": 4, + "x-total-pages": 2 + } + }; - if(url.includes('page=2')) return page2; + const page2 = { + body: [ + { + prop1: 3, + prop2: "test property3" + }, + { + prop1: 4, + prop2: "test property4" + } + ], + headers: { + link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="prev", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, + "x-next-page": "", + "x-page": 2, + "x-per-page": 2, + "x-prev-page": 1, + "x-total": 4, + "x-total-pages": 2 + } + }; - return page1; - } - } + if (url.includes("page=2")) return page2; + + return page1; + } + } }; -describe('RequestHelper.get()', () => { - it('Should respond with an object', async () => { - const response = await RequestHelper.get(mockService, 'https://www.test.com'); +describe("RequestHelper.get()", () => { + it("Should respond with an object", async () => { + const response = await RequestHelper.get( + mockService, + "https://www.test.com" + ); - expect(response.prop1).toBe(5); - expect(response.prop2).toBe('test property'); - }); + expect(response.prop1).toBe(5); + expect(response.prop2).toBe("test property"); + }); - it('Should be paginated when links are present', async () => { - const response = await RequestHelper.get(mockService2, 'https://www.test.com'); + it("Should be paginated when links are present", async () => { + const response = await RequestHelper.get( + mockService2, + "https://www.test.com" + ); - response.forEach((l, index) => { - expect(l.prop1).toBe(1 + index ) - expect(l.prop2).toBe(`test property${1 + index}`) - }) - }); + response.forEach((l, index) => { + expect(l.prop1).toBe(1 + index); + expect(l.prop2).toBe(`test property${1 + index}`); + }); + }); - it('Should be paginated but limited by the maxPages option', async () => { - const response = await RequestHelper.get(mockService2, 'https://www.test.com', { maxPages: 1 }); + it("Should be paginated but limited by the maxPages option", async () => { + const response = await RequestHelper.get( + mockService2, + "https://www.test.com", + { maxPages: 1 } + ); - expect(response.length).toBe(2); - expect(response[0].prop1).toBe(1); + expect(response.length).toBe(2); + expect(response[0].prop1).toBe(1); - response.forEach((l, index) => { - expect(l.prop1).toBe(1 + index ) - expect(l.prop2).toBe(`test property${1 + index}`) - }) - }); + response.forEach((l, index) => { + expect(l.prop1).toBe(1 + index); + expect(l.prop2).toBe(`test property${1 + index}`); + }); + }); - it('Should be paginated but limited by the page option', async () => { - const response = await RequestHelper.get(mockService2, 'https://www.test.com', { page: 2 }); + it("Should be paginated but limited by the page option", async () => { + const response = await RequestHelper.get( + mockService2, + "https://www.test.com", + { page: 2 } + ); - expect(response.length).toBe(2); - expect(response[0].prop1).toBe(3); + expect(response.length).toBe(2); + expect(response[0].prop1).toBe(3); - response.forEach((l, index) => { - expect(l.prop1).toBe(3 + index) - expect(l.prop2).toBe(`test property${3 + index}`) - }) - }); + response.forEach((l, index) => { + expect(l.prop1).toBe(3 + index); + expect(l.prop2).toBe(`test property${3 + index}`); + }); + }); - it('Should show the pagination information when the page option is given', async () => { - const response = await RequestHelper.get(mockService2, 'https://www.test.com', { page: 2, showPagination: true}); + it("Should show the pagination information when the page option is given", async () => { + const response = await RequestHelper.get( + mockService2, + "https://www.test.com", + { page: 2, showPagination: true } + ); - expect(response.data).toBeDefined(); - expect(response.data.length).toBe(2); - expect(response.data[0].prop1).toBe(3); + expect(response.data).toBeDefined(); + expect(response.data.length).toBe(2); + expect(response.data[0].prop1).toBe(3); - response.data.forEach((l, index) => { - expect(l.prop1).toBe(3 + index) - expect(l.prop2).toBe(`test property${3 + index}`) - }) + response.data.forEach((l, index) => { + expect(l.prop1).toBe(3 + index); + expect(l.prop2).toBe(`test property${3 + index}`); + }); - expect(response.pagination).toMatchObject({ - total: 4, - previous: 1, - current: 2, - next: null, - perPage: 2, - totalPages: 2 - }) - }); + expect(response.pagination).toMatchObject({ + total: 4, + previous: 1, + current: 2, + next: null, + perPage: 2, + totalPages: 2 + }); + }); }); From 3b1e91d60ab8cf098447d57948d7768c63c5e3f9 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:35:10 -0400 Subject: [PATCH 6/9] Fixing quotes --- test/tests/infrastructure/RequestHelper.js | 74 +++++++++++----------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index 022e6578..a5f6835d 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -1,24 +1,24 @@ -import { RequestHelper } from "../../../src/infrastructure"; +import { RequestHelper } from '../../../src/infrastructure'; const mockService = { - url: "testing", + url: 'testing', headers: {}, requester: { get: () => ({ body: { prop1: 5, - prop2: "test property" + prop2: 'test property' }, headers: { - "X-Page": 1, - "X-Total-Pages": 1 + 'X-Page': 1, + 'X-Total-Pages': 1 } }) } }; const mockService2 = { - url: "testing", + url: 'testing', headers: {}, requester: { get: ({ url, qs }) => { @@ -28,21 +28,21 @@ const mockService2 = { body: [ { prop1: 1, - prop2: "test property1" + prop2: 'test property1' }, { prop1: 2, - prop2: "test property2" + prop2: 'test property2' } ], headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="next", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, - "x-next-page": 2, - "x-page": 1, - "x-per-page": 2, - "x-prev-page": "", - "x-total": 4, - "x-total-pages": 2 + link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='next', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, + 'x-next-page': 2, + 'x-page': 1, + 'x-per-page': 2, + 'x-prev-page': '', + 'x-total': 4, + 'x-total-pages': 2 } }; @@ -50,46 +50,46 @@ const mockService2 = { body: [ { prop1: 3, - prop2: "test property3" + prop2: 'test property3' }, { prop1: 4, - prop2: "test property4" + prop2: 'test property4' } ], headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="prev", <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel="first", <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel="last"`, - "x-next-page": "", - "x-page": 2, - "x-per-page": 2, - "x-prev-page": 1, - "x-total": 4, - "x-total-pages": 2 + link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='prev', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, + 'x-next-page': '', + 'x-page': 2, + 'x-per-page': 2, + 'x-prev-page': 1, + 'x-total': 4, + 'x-total-pages': 2 } }; - if (url.includes("page=2")) return page2; + if (url.includes('page=2')) return page2; return page1; } } }; -describe("RequestHelper.get()", () => { - it("Should respond with an object", async () => { +describe('RequestHelper.get()', () => { + it('Should respond with an object', async () => { const response = await RequestHelper.get( mockService, - "https://www.test.com" + 'https://www.test.com' ); expect(response.prop1).toBe(5); - expect(response.prop2).toBe("test property"); + expect(response.prop2).toBe('test property'); }); - it("Should be paginated when links are present", async () => { + it('Should be paginated when links are present', async () => { const response = await RequestHelper.get( mockService2, - "https://www.test.com" + 'https://www.test.com' ); response.forEach((l, index) => { @@ -98,10 +98,10 @@ describe("RequestHelper.get()", () => { }); }); - it("Should be paginated but limited by the maxPages option", async () => { + it('Should be paginated but limited by the maxPages option', async () => { const response = await RequestHelper.get( mockService2, - "https://www.test.com", + 'https://www.test.com', { maxPages: 1 } ); @@ -114,10 +114,10 @@ describe("RequestHelper.get()", () => { }); }); - it("Should be paginated but limited by the page option", async () => { + it('Should be paginated but limited by the page option', async () => { const response = await RequestHelper.get( mockService2, - "https://www.test.com", + 'https://www.test.com', { page: 2 } ); @@ -130,10 +130,10 @@ describe("RequestHelper.get()", () => { }); }); - it("Should show the pagination information when the page option is given", async () => { + it('Should show the pagination information when the page option is given', async () => { const response = await RequestHelper.get( mockService2, - "https://www.test.com", + 'https://www.test.com', { page: 2, showPagination: true } ); From 9e9dac6128fa8ce6f8b3dff9bcf4ed13aceacec6 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:39:09 -0400 Subject: [PATCH 7/9] Linting --- test/tests/infrastructure/RequestHelper.js | 34 ++++++++++++---------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index a5f6835d..e890ab9d 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -7,11 +7,11 @@ const mockService = { get: () => ({ body: { prop1: 5, - prop2: 'test property' + prop2: 'test property', }, headers: { 'X-Page': 1, - 'X-Total-Pages': 1 + 'X-Total-Pages': 1, } }) } @@ -22,17 +22,19 @@ const mockService2 = { headers: {}, requester: { get: ({ url, qs }) => { - if (qs.page) url += `page=${qs.page}`; + const u = url; + + if (qs.page) u += `page=${qs.page}`; const page1 = { body: [ { prop1: 1, - prop2: 'test property1' + prop2: 'test property1', }, { prop1: 2, - prop2: 'test property2' + prop2: 'test property2', } ], headers: { @@ -42,7 +44,7 @@ const mockService2 = { 'x-per-page': 2, 'x-prev-page': '', 'x-total': 4, - 'x-total-pages': 2 + 'x-total-pages': 2, } }; @@ -50,11 +52,11 @@ const mockService2 = { body: [ { prop1: 3, - prop2: 'test property3' + prop2: 'test property3', }, { prop1: 4, - prop2: 'test property4' + prop2: 'test property4', } ], headers: { @@ -64,11 +66,11 @@ const mockService2 = { 'x-per-page': 2, 'x-prev-page': 1, 'x-total': 4, - 'x-total-pages': 2 + 'x-total-pages': 2, } }; - if (url.includes('page=2')) return page2; + if (u.includes('page=2')) return page2; return page1; } @@ -79,7 +81,7 @@ describe('RequestHelper.get()', () => { it('Should respond with an object', async () => { const response = await RequestHelper.get( mockService, - 'https://www.test.com' + 'https://www.test.com', ); expect(response.prop1).toBe(5); @@ -89,7 +91,7 @@ describe('RequestHelper.get()', () => { it('Should be paginated when links are present', async () => { const response = await RequestHelper.get( mockService2, - 'https://www.test.com' + 'https://www.test.com', ); response.forEach((l, index) => { @@ -102,7 +104,7 @@ describe('RequestHelper.get()', () => { const response = await RequestHelper.get( mockService2, 'https://www.test.com', - { maxPages: 1 } + { maxPages: 1 }, ); expect(response.length).toBe(2); @@ -118,7 +120,7 @@ describe('RequestHelper.get()', () => { const response = await RequestHelper.get( mockService2, 'https://www.test.com', - { page: 2 } + { page: 2 }, ); expect(response.length).toBe(2); @@ -134,7 +136,7 @@ describe('RequestHelper.get()', () => { const response = await RequestHelper.get( mockService2, 'https://www.test.com', - { page: 2, showPagination: true } + { page: 2, showPagination: true, }, ); expect(response.data).toBeDefined(); @@ -152,7 +154,7 @@ describe('RequestHelper.get()', () => { current: 2, next: null, perPage: 2, - totalPages: 2 + totalPages: 2, }); }); }); From d1070b3550f60b8a6ea560d37b86f347c886eb02 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:47:26 -0400 Subject: [PATCH 8/9] Linting --- test/tests/infrastructure/RequestHelper.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index e890ab9d..67dd83f1 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -12,9 +12,9 @@ const mockService = { headers: { 'X-Page': 1, 'X-Total-Pages': 1, - } - }) - } + }, + }), + }, }; const mockService2 = { @@ -22,7 +22,7 @@ const mockService2 = { headers: {}, requester: { get: ({ url, qs }) => { - const u = url; + let u = url; if (qs.page) u += `page=${qs.page}`; @@ -35,7 +35,7 @@ const mockService2 = { { prop1: 2, prop2: 'test property2', - } + }, ], headers: { link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='next', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, @@ -45,7 +45,7 @@ const mockService2 = { 'x-prev-page': '', 'x-total': 4, 'x-total-pages': 2, - } + }, }; const page2 = { @@ -57,7 +57,7 @@ const mockService2 = { { prop1: 4, prop2: 'test property4', - } + }, ], headers: { link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='prev', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, @@ -67,14 +67,14 @@ const mockService2 = { 'x-prev-page': 1, 'x-total': 4, 'x-total-pages': 2, - } + }, }; if (u.includes('page=2')) return page2; return page1; - } - } + }, + }, }; describe('RequestHelper.get()', () => { From e77dbd0f696af7f06d389685d2af3d9d5683173b Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 5 Jun 2018 22:53:49 -0400 Subject: [PATCH 9/9] more linting --- test/tests/infrastructure/RequestHelper.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/tests/infrastructure/RequestHelper.js b/test/tests/infrastructure/RequestHelper.js index 67dd83f1..d5618f43 100644 --- a/test/tests/infrastructure/RequestHelper.js +++ b/test/tests/infrastructure/RequestHelper.js @@ -38,7 +38,7 @@ const mockService2 = { }, ], headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='next', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, + link: "<'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='next', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'", 'x-next-page': 2, 'x-page': 1, 'x-per-page': 2, @@ -60,7 +60,7 @@ const mockService2 = { }, ], headers: { - link: `<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='prev', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'`, + link: "<'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='prev', <'https://www.test.com/api/v3/projects/8?page=1&per_page=2>; rel='first', <'https://www.test.com/api/v3/projects/8?page=2&per_page=2>; rel='last'", 'x-next-page': '', 'x-page': 2, 'x-per-page': 2, @@ -136,7 +136,7 @@ describe('RequestHelper.get()', () => { const response = await RequestHelper.get( mockService2, 'https://www.test.com', - { page: 2, showPagination: true, }, + { page: 2, showPagination: true }, ); expect(response.data).toBeDefined();