From 15049a8a3d1157556b85ef35c6f4429a9d556ebf Mon Sep 17 00:00:00 2001 From: Thomas Lynch Date: Thu, 7 Apr 2022 00:07:31 +1000 Subject: [PATCH] add pagequeryconverter tests, and check/query in pagequeryconverter --- helpers/pagequeryconverter.js | 1 + helpers/pagequeryconverter.test.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 helpers/pagequeryconverter.test.js diff --git a/helpers/pagequeryconverter.js b/helpers/pagequeryconverter.js index a7fdb75a..c1aa3e85 100644 --- a/helpers/pagequeryconverter.js +++ b/helpers/pagequeryconverter.js @@ -1,6 +1,7 @@ 'use strict'; module.exports = (query, limit) => { + query = query || {}; const nopage = { ...query }; delete nopage.page; const queryString = new URLSearchParams(nopage).toString(); diff --git a/helpers/pagequeryconverter.test.js b/helpers/pagequeryconverter.test.js new file mode 100644 index 00000000..a7014991 --- /dev/null +++ b/helpers/pagequeryconverter.test.js @@ -0,0 +1,23 @@ +const pageQueryConverter = require('./pagequeryconverter.js'); +const limit = 30; + +describe('page query converter', () => { + const cases = [ + { in: null, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: [1, 2, 3] }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: "test" }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: null }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: -1 }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: 0 }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: 1 }, out: { offset: 0, "queryString": "", page: 1 } }, + { in: { page: 5 }, out: { offset: limit*4, "queryString": "", page: 5 } }, + { in: { page: 10, other: "test" }, out: { offset: limit*9, "queryString": "other=test", page: 10 } }, + { in: { other: "test" }, out: { offset: 0, "queryString": "other=test", page: 1 } }, + ]; + for(let i in cases) { + test(`should contain ${cases[i].out} for an input of ${cases[i].in}`, () => { + expect(pageQueryConverter(cases[i].in, limit)).toStrictEqual(cases[i].out) + }); + } +});