diff --git a/server/.nyc_output/processinfo/index.json b/server/.nyc_output/processinfo/index.json index a0ddfa6..c23d26d 100644 --- a/server/.nyc_output/processinfo/index.json +++ b/server/.nyc_output/processinfo/index.json @@ -1 +1 @@ -{"processes":{"6c705a37-9f9a-432f-af14-21ee8ee708bc":{"parent":null,"children":[]}},"files":{"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\app.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\database\\index.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\config\\db.config.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\journey.model.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\bill.model.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\utilities.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\location.model.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\user.model.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\auth.routes.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\auth.controller.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\user.business.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\datalayer\\mongo.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\bill.routes.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\middleware\\auth\\authJwt.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\bill.controller.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\bill.business.js":["6c705a37-9f9a-432f-af14-21ee8ee708bc"]},"externalIds":{}} \ No newline at end of file +{"processes":{"50560bfc-9d99-4dfb-92f6-1329d287dafe":{"parent":null,"children":[]}},"files":{"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\app.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\database\\index.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\config\\db.config.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\journey.model.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\bill.model.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\utilities.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\location.model.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\models\\user.model.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\auth.routes.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\auth.controller.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\user.business.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\datalayer\\mongo.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\routes\\bill.routes.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\middleware\\auth\\authJwt.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\controllers\\bill.controller.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"],"E:\\UniWork\\CSSD\\CSSD-Assignment\\server\\business\\bill.business.js":["50560bfc-9d99-4dfb-92f6-1329d287dafe"]},"externalIds":{}} \ No newline at end of file diff --git a/server/coverage/lcov.info b/server/coverage/lcov.info index 17db0b3..708a31e 100644 --- a/server/coverage/lcov.info +++ b/server/coverage/lcov.info @@ -71,11 +71,11 @@ FN:34,(anonymous_4) FN:42,(anonymous_5) FN:47,(anonymous_6) FNF:7 -FNH:2 +FNH:1 FNDA:1,(anonymous_0) FNDA:0,(anonymous_1) FNDA:0,(anonymous_2) -FNDA:1,(anonymous_3) +FNDA:0,(anonymous_3) FNDA:0,(anonymous_4) FNDA:0,(anonymous_5) FNDA:0,(anonymous_6) @@ -88,13 +88,13 @@ DA:9,1 DA:16,0 DA:22,0 DA:25,0 -DA:32,1 +DA:32,0 DA:35,0 DA:43,0 DA:46,0 DA:47,0 LF:14 -LH:7 +LH:6 BRDA:19,0,0,0 BRDA:19,0,1,0 BRDA:20,1,0,0 @@ -196,14 +196,14 @@ FN:34,(anonymous_4) FN:39,(anonymous_5) FN:47,(anonymous_6) FNF:7 -FNH:2 +FNH:3 FNDA:1,(anonymous_0) FNDA:1,(anonymous_1) FNDA:0,(anonymous_2) FNDA:0,(anonymous_3) FNDA:0,(anonymous_4) FNDA:0,(anonymous_5) -FNDA:0,(anonymous_6) +FNDA:1,(anonymous_6) DA:1,1 DA:2,1 DA:7,1 @@ -219,10 +219,10 @@ DA:32,0 DA:35,0 DA:40,0 DA:47,1 -DA:48,0 -DA:49,0 +DA:48,1 +DA:49,1 LF:17 -LH:11 +LH:13 BRF:0 BRH:0 end_of_record @@ -238,12 +238,12 @@ FN:27,(anonymous_6) FN:29,(anonymous_7) FN:30,(anonymous_8) FNF:9 -FNH:2 +FNH:0 FNDA:0,(anonymous_0) FNDA:0,(anonymous_1) FNDA:0,(anonymous_2) -FNDA:1,(anonymous_3) -FNDA:1,(anonymous_4) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) FNDA:0,(anonymous_5) FNDA:0,(anonymous_6) FNDA:0,(anonymous_7) @@ -255,15 +255,15 @@ DA:8,0 DA:9,0 DA:11,0 DA:18,1 -DA:19,1 -DA:20,1 +DA:19,0 +DA:20,0 DA:21,0 DA:27,1 DA:28,0 DA:29,0 DA:30,0 LF:14 -LH:7 +LH:5 BRF:0 BRH:0 end_of_record @@ -324,12 +324,12 @@ FN:41,(anonymous_6) FN:48,(anonymous_7) FN:51,(anonymous_8) FNF:9 -FNH:3 +FNH:2 FNDA:2,(anonymous_0) FNDA:0,(anonymous_1) FNDA:0,(anonymous_2) FNDA:0,(anonymous_3) -FNDA:1,(anonymous_4) +FNDA:0,(anonymous_4) FNDA:1,(anonymous_5) FNDA:0,(anonymous_6) FNDA:0,(anonymous_7) @@ -338,14 +338,14 @@ DA:4,2 DA:11,0 DA:16,0 DA:17,0 -DA:26,1 +DA:26,0 DA:35,1 DA:42,0 DA:49,0 DA:51,0 DA:56,1 LF:10 -LH:4 +LH:3 BRF:0 BRH:0 end_of_record @@ -354,33 +354,33 @@ SF:middleware\auth\authJwt.js FN:4,(anonymous_0) FN:12,(anonymous_1) FNF:2 -FNH:2 -FNDA:1,(anonymous_0) -FNDA:1,(anonymous_1) +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) DA:1,1 DA:4,1 -DA:5,1 +DA:5,0 DA:6,0 -DA:10,1 -DA:12,1 -DA:13,1 +DA:10,0 +DA:12,0 +DA:13,0 DA:14,0 -DA:18,1 -DA:19,1 -DA:20,1 -DA:21,1 -DA:22,1 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 DA:37,1 LF:14 -LH:12 +LH:3 BRDA:5,0,0,0 -BRDA:5,0,1,1 -BRDA:5,1,0,1 -BRDA:5,1,1,1 +BRDA:5,0,1,0 +BRDA:5,1,0,0 +BRDA:5,1,1,0 BRDA:13,2,0,0 -BRDA:13,2,1,1 +BRDA:13,2,1,0 BRF:6 -BRH:4 +BRH:0 end_of_record TN: SF:models\bill.model.js diff --git a/server/database/seed.js b/server/database/seed.js index 3e1d0a3..4d010d0 100644 --- a/server/database/seed.js +++ b/server/database/seed.js @@ -70,6 +70,13 @@ const journeys = [ exitLocation: "123456789102", journeyDateTime: "2022-02-01T15:50:51.038Z" }, + { + _id: "123456789109", + regNumber: "test_reg_number", + entryLocation: "123456789101", + exitLocation: "123456789102", + journeyDateTime: "2022-02-01T15:50:51.039Z" + } ] const bills = [ @@ -86,6 +93,13 @@ const bills = [ driver: "123456789108", cost: 5, paid: true + }, + { + _id: "123456789110", + journey: "123456789109", + driver: "123456789107", + cost: 5, + paid: false } ] diff --git a/server/test/integration/auth.controller.test.js b/server/test/integration/auth.controller.test.js index 3553a2c..e5b2342 100644 --- a/server/test/integration/auth.controller.test.js +++ b/server/test/integration/auth.controller.test.js @@ -145,4 +145,21 @@ describe("Testing /auth paths", () => { done(); }); }); + + it("user should able to logout", (done) => { + // Arrange + const request = { + }; + + // Act + chai.request(server) + .post("/auth/logout") + .send(request) + .end((err, res) => { + // Assert + res.should.have.status(200); + + done(); + }); + }); }); diff --git a/server/test/integration/bill.controller.test.js b/server/test/integration/bill.controller.test.js index 17e2768..a601ecf 100644 --- a/server/test/integration/bill.controller.test.js +++ b/server/test/integration/bill.controller.test.js @@ -37,7 +37,7 @@ describe("Testing /bill paths", () => { // Assert res.should.have.status(200); res.should.be.a("object"); - res.body.bills.should.have.lengthOf(2); + res.body.bills.should.have.lengthOf(3); res.body.bills[0].should.haveOwnProperty( "cost", 72.93887106726764 @@ -87,7 +87,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(2); + res.body.count.should.equal(3); done(); }); @@ -176,7 +176,7 @@ describe("Testing /bill paths", () => { res.should.have.status(200); res.should.be.a("object"); - res.body.bills.should.have.lengthOf(1); + res.body.bills.should.have.lengthOf(2); res.body.bills[0].should.haveOwnProperty( "cost", 72.93887106726764 @@ -226,7 +226,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(2); + res.body.count.should.equal(3); done(); }); @@ -297,7 +297,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(2); + res.body.count.should.equal(3); done(); }); @@ -367,7 +367,7 @@ describe("Testing /bill paths", () => { "latitude", 0 ); - res.body.count.should.equal(2); + res.body.count.should.equal(3); done(); }); @@ -389,7 +389,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(2); + res.body.count.should.equal(3); done(); }); diff --git a/ui/cypress/support/commands.js b/ui/cypress/support/commands.js index 66ea16e..f55e0cd 100644 --- a/ui/cypress/support/commands.js +++ b/ui/cypress/support/commands.js @@ -22,4 +22,11 @@ // // // -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +Cypress.Commands.add('login', (email, password) => { + cy.visit('/') + cy.get('#email').type(email) + cy.get('#password').type(password) + cy.get('#login').click() + cy.url().should('contain', '/my-bills') + }) \ No newline at end of file diff --git a/ui/src/views/Login.vue b/ui/src/views/Login.vue index 166e98e..7e70a7c 100644 --- a/ui/src/views/Login.vue +++ b/ui/src/views/Login.vue @@ -8,7 +8,7 @@ New here? Sign up! - Sign in + Sign in diff --git a/ui/tests/e2e/support/commands.js b/ui/tests/e2e/support/commands.js deleted file mode 100644 index c1f5a77..0000000 --- a/ui/tests/e2e/support/commands.js +++ /dev/null @@ -1,25 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add("login", (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This is will overwrite an existing command -- -// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/ui/tests/e2e/support/index.js b/ui/tests/e2e/support/index.js deleted file mode 100644 index d68db96..0000000 --- a/ui/tests/e2e/support/index.js +++ /dev/null @@ -1,20 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/ui/tests/e2e/tests/mybills.spec.js b/ui/tests/e2e/tests/mybills.spec.js index 1be07f6..33bef8e 100644 --- a/ui/tests/e2e/tests/mybills.spec.js +++ b/ui/tests/e2e/tests/mybills.spec.js @@ -1,4 +1,9 @@ describe('My Bills Tests', () => { + + before(() => { + cy.login('test@email.com', 'test1') + }) + it('displays two rows in the bills table', () => { //Act cy.visit('/my-bills') diff --git a/ui/tests/e2e/tests/navbar.spec.js b/ui/tests/e2e/tests/navbar.spec.js index 65117f5..0d9a95a 100644 --- a/ui/tests/e2e/tests/navbar.spec.js +++ b/ui/tests/e2e/tests/navbar.spec.js @@ -1,4 +1,8 @@ describe('Navbar Tests', () => { + + before(() => { + cy.login('test@email.com', 'test1') + }) context('Languages Dropdown', () => { it('shows 23 languages when the languages dropdown is clicked', () => { @@ -12,8 +16,6 @@ it('selected language changes to Bulgarian when the Bulgarian option is selected', () => { //Act - cy.visit('/my-bills') - cy.get('#languages').click() cy.get('#Bulgarian').click() //Assert @@ -22,7 +24,6 @@ it('selected language changes to Czech when the Czech option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Czech').click() @@ -32,7 +33,6 @@ it('selected language changes to Danish when the Danish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Danish').click() @@ -42,7 +42,6 @@ it('selected language changes to Dutch when the Dutch option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Dutch').click() @@ -52,7 +51,6 @@ it('selected language changes to English when the English option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#English').click() @@ -62,7 +60,6 @@ it('selected language changes to Estonian when the Estonian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Estonian').click() @@ -72,7 +69,6 @@ it('selected language changes to Finnish when the Finnish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Finnish').click() @@ -82,7 +78,6 @@ it('selected language changes to French when the French option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#French').click() @@ -92,7 +87,6 @@ it('selected language changes to German when the German option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#German').click() @@ -102,7 +96,6 @@ it('selected language changes to Greek when the Greek option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Greek').click() @@ -112,7 +105,6 @@ it('selected language changes to Hungarian when the Hungarian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Hungarian').click() @@ -122,7 +114,6 @@ it('selected language changes to Irish when the Irish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Irish').click() @@ -132,7 +123,6 @@ it('selected language changes to Italian when the Italian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Italian').click() @@ -142,7 +132,6 @@ it('selected language changes to Latvian when the Latvian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Latvian').click() @@ -152,7 +141,6 @@ it('selected language changes to Lithuanian when the Lithuanian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Lithuanian').click() @@ -162,7 +150,6 @@ it('selected language changes to Maltese when the Maltese option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Maltese').click() @@ -172,7 +159,6 @@ it('selected language changes to Polish when the Polish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Polish').click() @@ -182,7 +168,6 @@ it('selected language changes to Portuguese when the Portuguese option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Portuguese').click() @@ -192,7 +177,6 @@ it('selected language changes to Romanian when the Romanian option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Romanian').click() @@ -202,7 +186,6 @@ it('selected language changes to Slovak when the Slovak option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Slovak').click() @@ -212,7 +195,6 @@ it('selected language changes to Slovene when the Slovene option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Slovene').click() @@ -222,7 +204,6 @@ it('selected language changes to Spanish when the Spanish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Spanish').click() @@ -232,7 +213,6 @@ it('selected language changes to Swedish when the Swedish option is selected', () => { //Act - cy.visit('/my-bills') cy.get('#languages').click() cy.get('#Swedish').click() @@ -245,7 +225,6 @@ context('Profile Dropdown', () => { it('shows sign out when the profile dropdown is clicked', () => { //Act - cy.visit('/my-bills') cy.get('#profile').click() //Assert @@ -257,7 +236,6 @@ context('Currency Dropdown', () => { it('shows 6 currencies when the currency dropdown is clicked', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() //Assert @@ -266,8 +244,6 @@ it('cost doesnt change when NOK is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') - cy.get('#currencies').click() cy.get('#NOK').click() //Assert @@ -277,7 +253,6 @@ it('cost updates to 75.86 when SEK is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() cy.get('#SEK').click() @@ -288,7 +263,6 @@ it('cost updates to 1,042 when ISK is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() cy.get('#ISK').click() @@ -299,7 +273,6 @@ it('cost updates to 53.97 when DKK is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() cy.get('#DKK').click() @@ -310,7 +283,6 @@ it('cost updates to 6.13 when GBP is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() cy.get('#GBP').click() @@ -321,7 +293,6 @@ it('cost updates to 7.29 when EUR is selected in the currency drop down', () => { //Act - cy.visit('/my-bills') cy.get('#currencies').click() cy.get('#EUR').click() diff --git a/ui/tests/e2e/tests/routes.spec.js b/ui/tests/e2e/tests/routes.spec.js index 0a4ca17..6de6d3a 100644 --- a/ui/tests/e2e/tests/routes.spec.js +++ b/ui/tests/e2e/tests/routes.spec.js @@ -1,4 +1,9 @@ describe('Route Tests', () => { + + before(() => { + cy.login('test@email.com', 'test1') + }) + it('loads the my bills page', () => { //Act cy.visit('/my-bills')