From 18f168a26d50c208d1ca89b012717f2d5ffb32db Mon Sep 17 00:00:00 2001 From: Lenton99 <49190812+Lenton99@users.noreply.github.com> Date: Thu, 10 Feb 2022 18:57:33 +0000 Subject: [PATCH 1/3] HT-27 Fixed the pagination issues --- server/database/seed.js | 112 +++++++++++++++++++++++++++++--------- server/datalayer/mongo.js | 16 ++++-- 2 files changed, 95 insertions(+), 33 deletions(-) diff --git a/server/database/seed.js b/server/database/seed.js index 879f814..cdafc8d 100644 --- a/server/database/seed.js +++ b/server/database/seed.js @@ -5,7 +5,9 @@ mongoose.journeys = require("../models/journey.model")(mongoose); mongoose.bills = require("../models/bill.model")(mongoose); const bcrypt = require("bcryptjs"); const environment = process.env.NODE_ENV; -let dbConfig = require("../config/db.config.js")[environment] ?? { url: "mongodb://localhost:27017/highwaytrackerdb_testing" }; +let dbConfig = require("../config/db.config.js")[environment] ?? { + url: "mongodb://localhost:27017/highwaytrackerdb_testing", +}; mongoose .connect(dbConfig.url, { @@ -40,7 +42,7 @@ const users = [ email: "operator@email.com", password: bcrypt.hashSync("test1", 8), type: "Toll Operator", - } + }, ]; const locations = [ @@ -49,18 +51,18 @@ const locations = [ name: "test_location_1", coordinates: { longitude: 50, - latitude: 50 - } + latitude: 50, + }, }, { _id: "123456789102", name: "test_location_2", coordinates: { longitude: 0, - latitude: 0 - } - } -] + latitude: 0, + }, + }, +]; const journeys = [ { @@ -68,23 +70,51 @@ const journeys = [ regNumber: "test_reg_number", entryLocation: "123456789101", exitLocation: "123456789102", - journeyDateTime: "2022-02-01T15:50:51.039Z" + journeyDateTime: "2022-02-01T15:50:51.039Z", }, { _id: "123456789104", regNumber: "test_reg_number2", entryLocation: "123456789101", exitLocation: "123456789102", - journeyDateTime: "2022-02-01T15:50:51.038Z" + journeyDateTime: "2022-02-01T15:50:51.038Z", }, { _id: "123456789109", regNumber: "test_reg_number", entryLocation: "123456789101", exitLocation: "123456789102", - journeyDateTime: "2022-02-01T15:50:51.039Z" - } -] + journeyDateTime: "2022-02-01T15:50:51.039Z", + }, + { + _id: "123456789130", + regNumber: "test_reg_number", + entryLocation: "123456789101", + exitLocation: "123456789102", + journeyDateTime: "2022-02-01T15:50:51.039Z", + }, + { + _id: "123456789131", + regNumber: "test_reg_number3", + entryLocation: "123456789101", + exitLocation: "123456789102", + journeyDateTime: "2022-02-01T15:50:51.039Z", + }, + { + _id: "123456789132", + regNumber: "test_reg_number", + entryLocation: "123456789101", + exitLocation: "123456789102", + journeyDateTime: "2022-02-01T15:50:51.039Z", + }, + { + _id: "123456789133", + regNumber: "test_reg_number5", + entryLocation: "123456789101", + exitLocation: "123456789102", + journeyDateTime: "2022-02-01T15:50:51.039Z", + }, +]; const bills = [ { @@ -92,33 +122,61 @@ const bills = [ journey: "123456789103", driver: "123456789107", cost: 5, - paid: false + paid: false, }, { _id: "123456789106", journey: "123456789104", driver: "123456789108", - cost: 5, - paid: true + cost: 10, + paid: true, }, { _id: "123456789110", journey: "123456789109", driver: "123456789107", - cost: 5, - paid: false - } -] + cost: 500, + paid: false, + }, + { + _id: "123456789120", + journey: "123456789130", + driver: "123456789107", + cost: 52, + paid: false, + }, + { + _id: "123456789121", + journey: "123456789131", + driver: "123456789107", + cost: 46, + paid: false, + }, + { + _id: "123456789122", + journey: "123456789132", + driver: "123456789107", + cost: 90, + paid: false, + }, + { + _id: "123456789123", + journey: "123456789133", + driver: "123456789107", + cost: 534, + paid: false, + }, +]; const seedDB = async () => { - for(const collection in mongoose.connection.collections){ - await mongoose.connection.collections[collection].deleteMany() + for (const collection in mongoose.connection.collections) { + await mongoose.connection.collections[collection].deleteMany(); } - - await mongoose.users.insertMany(users) - await mongoose.locations.insertMany(locations) - await mongoose.journeys.insertMany(journeys) - await mongoose.bills.insertMany(bills) + + await mongoose.users.insertMany(users); + await mongoose.locations.insertMany(locations); + await mongoose.journeys.insertMany(journeys); + await mongoose.bills.insertMany(bills); }; seedDB() diff --git a/server/datalayer/mongo.js b/server/datalayer/mongo.js index 6bc76a2..36304a7 100644 --- a/server/datalayer/mongo.js +++ b/server/datalayer/mongo.js @@ -14,9 +14,11 @@ class DataLayer { .skip(filter.offset * filter.limit) .populate(JSON.parse(JSON.stringify(populateFilter))) .then((bills) => { - return this.model.countDocuments().then((count) => { - return { bills: bills, count: count }; - }); + return this.model + .countDocuments(JSON.parse(JSON.stringify(filter))) + .then((count) => { + return { bills: bills, count: count }; + }); }); } /** @@ -28,9 +30,11 @@ class DataLayer { .limit(filter.limit) .skip(filter.offset * filter.limit) .then((users) => { - return this.model.countDocuments().then((count) => { - return { users: users, count: count }; - }); + return this.model + .countDocuments(JSON.parse(JSON.stringify(filter))) + .then((count) => { + return { users: users, count: count }; + }); }); } From 0fc796c2f40a3c647be93866004f2fb98dc19cdc Mon Sep 17 00:00:00 2001 From: Lenton99 <49190812+Lenton99@users.noreply.github.com> Date: Thu, 10 Feb 2022 19:14:34 +0000 Subject: [PATCH 2/3] HT-27 Fixed server tests --- server/.nyc_output/processinfo/index.json | 2 +- server/coverage/lcov.info | 75 +++++++++---------- .../test/integration/bill.controller.test.js | 14 ++-- 3 files changed, 45 insertions(+), 46 deletions(-) diff --git a/server/.nyc_output/processinfo/index.json b/server/.nyc_output/processinfo/index.json index 7e7c6cb..78baa1c 100644 --- a/server/.nyc_output/processinfo/index.json +++ b/server/.nyc_output/processinfo/index.json @@ -1 +1 @@ -{"processes":{"076bf10b-2570-48ae-ba89-4c94269b643b":{"parent":null,"children":[]}},"files":{"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\app.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\database\\index.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\config\\db.config.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\journey.model.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\bill.model.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\utilities.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\location.model.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\user.model.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\auth.routes.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\auth.controller.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\user.business.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\datalayer\\mongo.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\bill.routes.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\middleware\\auth\\authJwt.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\bill.controller.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\bill.business.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\user.routes.js":["076bf10b-2570-48ae-ba89-4c94269b643b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\user.controller.js":["076bf10b-2570-48ae-ba89-4c94269b643b"]},"externalIds":{}} \ No newline at end of file +{"processes":{"efe9c07c-459b-49c2-9570-3741e715827b":{"parent":null,"children":[]}},"files":{"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\app.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\database\\index.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\config\\db.config.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\journey.model.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\bill.model.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\utilities.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\location.model.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\user.model.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\auth.routes.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\auth.controller.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\user.business.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\datalayer\\mongo.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\bill.routes.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\middleware\\auth\\authJwt.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\bill.controller.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\bill.business.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\user.routes.js":["efe9c07c-459b-49c2-9570-3741e715827b"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\user.controller.js":["efe9c07c-459b-49c2-9570-3741e715827b"]},"externalIds":{}} \ No newline at end of file diff --git a/server/coverage/lcov.info b/server/coverage/lcov.info index 1c6967b..f96a848 100644 --- a/server/coverage/lcov.info +++ b/server/coverage/lcov.info @@ -1,6 +1,6 @@ TN: SF:app.js -FN:32,(anonymous_0) +FN:38,(anonymous_0) FNF:1 FNH:0 FNDA:0,(anonymous_0) @@ -17,23 +17,23 @@ DA:11,1 DA:13,1 DA:15,1 DA:24,1 -DA:29,1 -DA:30,1 -DA:31,1 -DA:32,1 -DA:33,1 +DA:34,1 +DA:35,1 +DA:36,1 DA:38,1 DA:39,1 -DA:40,1 -DA:41,1 -DA:42,1 -DA:43,1 DA:44,1 DA:45,1 +DA:46,1 +DA:47,1 DA:48,1 DA:49,1 DA:50,1 -DA:52,1 +DA:51,1 +DA:54,1 +DA:55,1 +DA:56,1 +DA:58,1 LF:30 LH:30 BRF:0 @@ -119,7 +119,7 @@ FN:98,(anonymous_9) FN:102,(anonymous_10) FN:110,(anonymous_11) FN:117,(anonymous_12) -FN:127,isUserDataValid +FN:126,isUserDataValid FNF:14 FNH:12 FNDA:2,(anonymous_0) @@ -167,9 +167,8 @@ DA:103,0 DA:111,1 DA:117,1 DA:118,0 -DA:119,0 -DA:128,4 -LF:33 +DA:127,4 +LF:32 LH:29 BRDA:24,0,0,1 BRDA:24,0,1,4 @@ -179,10 +178,10 @@ BRDA:84,2,0,1 BRDA:84,2,1,1 BRDA:86,3,0,1 BRDA:86,3,1,0 -BRDA:128,4,0,4 -BRDA:128,4,1,4 -BRDA:128,4,2,3 -BRDA:128,4,3,3 +BRDA:127,4,0,4 +BRDA:127,4,1,4 +BRDA:127,4,2,3 +BRDA:127,4,3,3 BRF:12 BRH:11 end_of_record @@ -348,15 +347,15 @@ SF:datalayer\mongo.js FN:2,(anonymous_0) FN:10,(anonymous_1) FN:16,(anonymous_2) -FN:17,(anonymous_3) -FN:23,(anonymous_4) -FN:28,(anonymous_5) -FN:29,(anonymous_6) -FN:38,(anonymous_7) -FN:48,(anonymous_8) -FN:55,(anonymous_9) -FN:62,(anonymous_10) -FN:66,(anonymous_11) +FN:19,(anonymous_3) +FN:27,(anonymous_4) +FN:32,(anonymous_5) +FN:35,(anonymous_6) +FN:44,(anonymous_7) +FN:54,(anonymous_8) +FN:61,(anonymous_9) +FN:68,(anonymous_10) +FN:72,(anonymous_11) FNF:12 FNH:12 FNDA:3,(anonymous_0) @@ -374,16 +373,16 @@ FNDA:1,(anonymous_11) DA:4,3 DA:11,5 DA:17,5 -DA:18,5 -DA:24,1 -DA:29,1 -DA:30,1 -DA:39,1 -DA:49,5 -DA:56,3 -DA:63,2 -DA:67,1 -DA:72,1 +DA:20,5 +DA:28,1 +DA:33,1 +DA:36,1 +DA:45,1 +DA:55,5 +DA:62,3 +DA:69,2 +DA:73,1 +DA:78,1 LF:13 LH:13 BRF:0 diff --git a/server/test/integration/bill.controller.test.js b/server/test/integration/bill.controller.test.js index cdfd0f5..d6e8bca 100644 --- a/server/test/integration/bill.controller.test.js +++ b/server/test/integration/bill.controller.test.js @@ -36,7 +36,7 @@ describe("Testing /bill paths", () => { // Assert res.should.have.status(200); res.should.be.a("object"); - res.body.bills.should.have.lengthOf(3); + res.body.bills.should.have.lengthOf(7); res.body.bills[0].should.haveOwnProperty( "cost", 72.93887106726764 @@ -86,7 +86,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(3); + res.body.count.should.equal(7); done(); }); @@ -169,7 +169,7 @@ describe("Testing /bill paths", () => { res.should.have.status(200); res.should.be.a("object"); - res.body.bills.should.have.lengthOf(2); + res.body.bills.should.have.lengthOf(6); res.body.bills[0].should.haveOwnProperty( "cost", 72.93887106726764 @@ -219,7 +219,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(3); + res.body.count.should.equal(6); done(); }); @@ -290,7 +290,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(3); + res.body.count.should.equal(1); done(); }); @@ -360,7 +360,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(3); + res.body.count.should.equal(7); done(); }); @@ -382,7 +382,7 @@ describe("Testing /bill paths", () => { res.should.have.status(200); res.should.be.a("object"); res.body.bills.should.have.lengthOf(0); - res.body.count.should.equal(3); + res.body.count.should.equal(7); done(); }); From b5f541c48d4f2c1300d01859a3a717a69a45a236 Mon Sep 17 00:00:00 2001 From: Lenton99 <49190812+Lenton99@users.noreply.github.com> Date: Thu, 10 Feb 2022 19:39:47 +0000 Subject: [PATCH 3/3] HT-27 Fixed UI tests --- ui/tests/e2e/tests/mybills.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/tests/e2e/tests/mybills.spec.js b/ui/tests/e2e/tests/mybills.spec.js index 07e0fcc..7bb9c90 100644 --- a/ui/tests/e2e/tests/mybills.spec.js +++ b/ui/tests/e2e/tests/mybills.spec.js @@ -8,7 +8,7 @@ cy.visit("/my-bills"); // Assert - cy.get("#bills-table").find("tbody tr").should("have.length", 2); + cy.get("#bills-table").find("tbody tr").should("have.length", 6); }); it("Entry Location filters the my bills table", () => {