From f3ff88229e7a85b2e9ec23076b6927ed5eb90d6f Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 20 Dec 2021 19:12:32 +0000 Subject: [PATCH] --- e2e/cypress.json | 38 ++++++---- e2e/support/commands.js | 20 +++++- e2e/support/index.js | 70 +------------------ e2e/tests/regression/1-smoke/001-home.js | 10 +-- e2e/tests/regression/1-smoke/002-customer.js | 10 +-- .../regression/1-smoke/003-service-misc.js | 10 +-- .../regression/1-smoke/004-service-wo.js | 10 +-- .../regression/1-smoke/005-service-quote.js | 9 +-- .../regression/1-smoke/006-service-pm.js | 10 +-- e2e/tests/regression/1-smoke/007-inventory.js | 10 +-- e2e/tests/regression/1-smoke/008-vendors.js | 12 +--- .../regression/1-smoke/009-accounting.js | 12 +--- .../regression/1-smoke/010-administration.js | 11 +-- .../1-smoke/011-server-operations.js | 12 +--- e2e/tests/regression/1-smoke/012-misc.js | 12 +--- .../regression/1-smoke/013-customer-user.js | 9 +-- .../regression/accounting-user/000-setup.js | 20 ++++++ .../regression/accounting-user/0100-search.js | 19 +++++ .../accounting-user/accounting-features.js | 13 +--- .../service-user-create-workorder.js | 11 +-- 20 files changed, 99 insertions(+), 229 deletions(-) create mode 100644 e2e/tests/regression/accounting-user/000-setup.js create mode 100644 e2e/tests/regression/accounting-user/0100-search.js diff --git a/e2e/cypress.json b/e2e/cypress.json index eea9586..25a4a44 100644 --- a/e2e/cypress.json +++ b/e2e/cypress.json @@ -1,20 +1,30 @@ { - "defaultCommandTimeout":5000, + "defaultCommandTimeout": 5000, "xxxretries": 3, "integrationFolder": "tests", - "supportFile":"support", - "xbaseUrl": "http://localhost:7575", - "baseUrl": "https://test.helloayanova.com", - "xxxxbaseUrl":"http://localhost:8080", - "video":false, + "supportFile": "support", + "baseUrl": "http://localhost:7575", + "xbaseUrl": "https://test.helloayanova.com", + "xxxxbaseUrl": "http://localhost:8080", + "video": false, "env": { - "xapiBaseUrl":"http://localhost:7575/api/v8.0/", - "apiBaseUrl":"https://test.helloayanova.com/api/v8.0/", - "adminusername": "superuser", - "adminpassword": "l3tm3in", - "accountinguser": "Accounting", - "accountingpassword": "Accounting", - "serviceuser":"Service", - "servicepassword":"Service" + "apiBaseUrl": "http://localhost:7575/api/v8.0/", + "xapiBaseUrl": "https://test.helloayanova.com/api/v8.0/", + "admin": { + "login": "superuser", + "password": "l3tm3in" + }, + "accounting": { + "login": "Accounting", + "password": "Accounting" + }, + "service": { + "login": "Service", + "password": "Service" + }, + "customer": { + "login": "Customer", + "password": "Customer" + } } } \ No newline at end of file diff --git a/e2e/support/commands.js b/e2e/support/commands.js index 398b319..51637be 100644 --- a/e2e/support/commands.js +++ b/e2e/support/commands.js @@ -34,7 +34,21 @@ Cypress.Commands.add("chooseVSelect", (dataCyTag, selectionText) => { Cypress.Commands.add("choosePickList", (dataCyTag, selectionText) => { cy.get(`[data-cy='${dataCyTag}']`).click({ force: true }).type(selectionText); cy.wait(500); - cy.get(".v-list-item__title") - .contains(new RegExp(selectionText)) - .click(); + cy.get(".v-list-item__title").contains(new RegExp(selectionText)).click(); +}); + +Cypress.Commands.add("ayLogin", (user, urlAfterLogin) => { +if(!urlAfterLogin){ + urlAfterLogin="/ay-evaluate" +} + cy.visit("/login"); + + cy.get("input[name=username]").clear().type(Cypress.env(user).login); + + // {enter} causes the form to submit + cy.get("input[name=password]") + .clear() + .type(`${Cypress.env(user).password}{enter}`); + + cy.url().should("include", urlAfterLogin); }); diff --git a/e2e/support/index.js b/e2e/support/index.js index ac746e9..c5bf933 100644 --- a/e2e/support/index.js +++ b/e2e/support/index.js @@ -20,72 +20,4 @@ import "./commands"; // require('./commands') //unique test run ID for all tests -Cypress.config("cyid", `cy${new Date().getTime()}`); -/////////////////////////////////////////////////////////////// -//Generate fresh data -// -// -// //via UI -// // before(() => { -// // cy.visit("/login"); - -// // cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - -// // // {enter} causes the form to submit -// // cy.get("input[name=password]") -// // .clear() -// // .type(`${Cypress.env("adminpassword")}{enter}`); -// // cy.url().should("include", "/ay-evaluate"); - -// // cy.get("[data-cy=btnSeed]").click(); -// // cy.get("[data-cy=btnStart]").click(); -// // cy.get('[data-cy="gzconfirm:yesbutton"]').click(); -// // //cy.contains("permanently erase"); -// // cy.get('[data-cy="gzconfirm:yesbutton"]').click(); -// // //long delay here while data is being generated -// // cy.url({ timeout: 300000 }).should("include", "/login"); -// // }); -//via API -function confirmJobDone(jobId, authToken) { - cy.request({ - method: "GET", - url: `${Cypress.env("apiBaseUrl")}job-operations/status/${jobId}`, - auth: { - bearer: authToken - } - }).then((resp) => { - //3 means job done - if (resp.body.data == 3) return; - // else recurse - cy.wait(1000); - confirmJobDone(jobId, authToken); - }); -} - - -// before(() => { -// cy.request({ -// url: `${Cypress.env("apiBaseUrl")}auth`, -// method: "POST", -// body: { -// login: Cypress.env("adminusername"), -// password: Cypress.env("adminpassword") -// } -// }) -// .its("body") -// .then((res) => { -// cy.request({ -// method: "POST", -// url: `${Cypress.env("apiBaseUrl")}trial/seed/small/-7/true`, -// auth: { -// bearer: res.data.token -// } -// }) -// .its("body") -// .then((resjob) => { -// cy.log(`resjob is: ${JSON.stringify(resjob)}`); -// // expect(resjob.body).to.have.property('jobId'); -// confirmJobDone(resjob.jobId, res.data.token); -// }); -// }); -// }); +Cypress.config("cyid", `cy${new Date().getTime()}`); \ No newline at end of file diff --git a/e2e/tests/regression/1-smoke/001-home.js b/e2e/tests/regression/1-smoke/001-home.js index 5cc1c15..f6ab2e9 100644 --- a/e2e/tests/regression/1-smoke/001-home.js +++ b/e2e/tests/regression/1-smoke/001-home.js @@ -2,15 +2,7 @@ describe("SMOKE HOME SECTION", () => { it("Home forms opens without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); //################# HOME cy.visit("/home-dashboard"); diff --git a/e2e/tests/regression/1-smoke/002-customer.js b/e2e/tests/regression/1-smoke/002-customer.js index 0a145fe..842267f 100644 --- a/e2e/tests/regression/1-smoke/002-customer.js +++ b/e2e/tests/regression/1-smoke/002-customer.js @@ -2,15 +2,7 @@ describe("SMOKE CUSTOMER SECTION", () => { it("Customer section forms opens without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); //################# CUSTOMERS cy.visit("/cust-customers"); diff --git a/e2e/tests/regression/1-smoke/003-service-misc.js b/e2e/tests/regression/1-smoke/003-service-misc.js index 7735d5b..572856b 100644 --- a/e2e/tests/regression/1-smoke/003-service-misc.js +++ b/e2e/tests/regression/1-smoke/003-service-misc.js @@ -2,15 +2,7 @@ describe("SMOKE SERVICE MISC SECTION", () => { it("Service MISC forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); //################# SERVICE cy.visit("/svc-schedule"); cy.url().should("include", "/svc-schedule"); diff --git a/e2e/tests/regression/1-smoke/004-service-wo.js b/e2e/tests/regression/1-smoke/004-service-wo.js index cb89557..b018207 100644 --- a/e2e/tests/regression/1-smoke/004-service-wo.js +++ b/e2e/tests/regression/1-smoke/004-service-wo.js @@ -2,15 +2,7 @@ describe("SMOKE SERVICE WO SECTION", () => { it("Service WO forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); //################# SERVICE WO cy.visit("/svc-workorders"); diff --git a/e2e/tests/regression/1-smoke/005-service-quote.js b/e2e/tests/regression/1-smoke/005-service-quote.js index 7dae005..dd92223 100644 --- a/e2e/tests/regression/1-smoke/005-service-quote.js +++ b/e2e/tests/regression/1-smoke/005-service-quote.js @@ -2,14 +2,7 @@ describe("SMOKE SERVICE QUOTE SECTION", () => { it("Service quote forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); + cy.ayLogin("admin"); cy.visit("/svc-quotes"); diff --git a/e2e/tests/regression/1-smoke/006-service-pm.js b/e2e/tests/regression/1-smoke/006-service-pm.js index 280ef37..369c97e 100644 --- a/e2e/tests/regression/1-smoke/006-service-pm.js +++ b/e2e/tests/regression/1-smoke/006-service-pm.js @@ -2,15 +2,7 @@ describe("SMOKE SERVICE PM SECTION", () => { it("Service pm forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); cy.visit("/svc-pms"); cy.url().should("include", "/svc-pms"); diff --git a/e2e/tests/regression/1-smoke/007-inventory.js b/e2e/tests/regression/1-smoke/007-inventory.js index f47eaf0..340f6b7 100644 --- a/e2e/tests/regression/1-smoke/007-inventory.js +++ b/e2e/tests/regression/1-smoke/007-inventory.js @@ -2,15 +2,7 @@ describe("SMOKE INVENTORY", () => { it("Inventory forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("admin"); //################# INVENTORY cy.visit("/inv-parts"); diff --git a/e2e/tests/regression/1-smoke/008-vendors.js b/e2e/tests/regression/1-smoke/008-vendors.js index 0821ed6..a83c34d 100644 --- a/e2e/tests/regression/1-smoke/008-vendors.js +++ b/e2e/tests/regression/1-smoke/008-vendors.js @@ -2,17 +2,7 @@ describe("SMOKE VENDORS SECTION", () => { it("Vendors forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); - - //################# VENDORS + cy.ayLogin("admin"); cy.visit("/vendors"); cy.url().should("include", "/vendors"); cy.get("[data-cy=generalerror]").should("not.exist"); diff --git a/e2e/tests/regression/1-smoke/009-accounting.js b/e2e/tests/regression/1-smoke/009-accounting.js index 40e203a..62262e7 100644 --- a/e2e/tests/regression/1-smoke/009-accounting.js +++ b/e2e/tests/regression/1-smoke/009-accounting.js @@ -2,17 +2,7 @@ describe("SMOKE", () => { it("Every form opens without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); - - //################# ACCOUNTING + cy.ayLogin("accounting"); cy.visit("/acc-service-rates"); cy.url().should("include", "/acc-service-rates"); diff --git a/e2e/tests/regression/1-smoke/010-administration.js b/e2e/tests/regression/1-smoke/010-administration.js index 24fe29f..d62a91e 100644 --- a/e2e/tests/regression/1-smoke/010-administration.js +++ b/e2e/tests/regression/1-smoke/010-administration.js @@ -2,16 +2,7 @@ describe("SMOKE ADMIN SECTION", () => { it("Admin forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); - //################# ADMIN + cy.ayLogin("admin"); cy.visit("/adm-global-settings"); cy.url().should("include", "/adm-global-settings"); cy.get("[data-cy=generalerror]").should("not.exist"); diff --git a/e2e/tests/regression/1-smoke/011-server-operations.js b/e2e/tests/regression/1-smoke/011-server-operations.js index beeab75..e90d29c 100644 --- a/e2e/tests/regression/1-smoke/011-server-operations.js +++ b/e2e/tests/regression/1-smoke/011-server-operations.js @@ -2,17 +2,7 @@ describe("SMOKE OPERATIONS SECTION", () => { it("Ops forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); - - //################# OPERATIONS + cy.ayLogin("admin"); cy.visit("/ops-backup"); cy.url().should("include", "/ops-backup"); cy.get("[data-cy=generalerror]").should("not.exist"); diff --git a/e2e/tests/regression/1-smoke/012-misc.js b/e2e/tests/regression/1-smoke/012-misc.js index 0ce7ec1..b65b06a 100644 --- a/e2e/tests/regression/1-smoke/012-misc.js +++ b/e2e/tests/regression/1-smoke/012-misc.js @@ -2,17 +2,7 @@ describe("SMOKE MISC", () => { it("Misc. forms open without error", () => { - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("adminpassword")}{enter}`); - cy.url().should("include", "/ay-evaluate"); - cy.url().should("include", "/ay-evaluate"); - //################# MISC + cy.ayLogin("admin"); cy.visit("/about"); cy.url().should("include", "/about"); cy.get("[data-cy=generalerror]").should("not.exist"); diff --git a/e2e/tests/regression/1-smoke/013-customer-user.js b/e2e/tests/regression/1-smoke/013-customer-user.js index ca1fcb3..97f3893 100644 --- a/e2e/tests/regression/1-smoke/013-customer-user.js +++ b/e2e/tests/regression/1-smoke/013-customer-user.js @@ -2,13 +2,8 @@ describe("SMOKE CUSTOMER SECTION", () => { it("Customer User forms open without error", () => { - cy.visit("/login"); + cy.ayLogin("accounting", "/customer-csr"); - //CUSTOMER PAGES - cy.get("input[name=username]").clear().type("Customer"); - cy.get("input[name=password]").clear().type("Customer{enter}"); - - cy.url().should("include", "/customer-csr"); cy.get("[data-cy=generalerror]").should("not.exist"); cy.get("[data-cy=csrTable]"); @@ -17,7 +12,7 @@ describe("SMOKE CUSTOMER SECTION", () => { cy.get("[data-cy=generalerror]").should("not.exist"); cy.get("[data-cy=workordersTable]"); - //todo: + //todo: //path: "/customer-workorders/:recordid", //path: "/customer-csr/:recordid" diff --git a/e2e/tests/regression/accounting-user/000-setup.js b/e2e/tests/regression/accounting-user/000-setup.js new file mode 100644 index 0000000..84b54b7 --- /dev/null +++ b/e2e/tests/regression/accounting-user/000-setup.js @@ -0,0 +1,20 @@ +/// +describe("When Accounting user logs in", () => { + it("should set up accounting block user options", () => { + cy.ayLogin("accounting"); + + //open nav pane + cy.get("[data-cy=navicon]").click(); + cy.contains("- Accounting"); //part of name displayed at top + + //USER OPTIONS + cy.get("[data-cy=home]").click(); + + cy.get("[data-cy='nav/home-user-settings']").click(); + cy.url().should("include", "/home-user-settings"); + cy.get("[data-cy='nativeDateTimeInput']").check({ force: true }); + + //END OF TEST + //----------------------------------------------------- + }); +}); diff --git a/e2e/tests/regression/accounting-user/0100-search.js b/e2e/tests/regression/accounting-user/0100-search.js new file mode 100644 index 0000000..f56e396 --- /dev/null +++ b/e2e/tests/regression/accounting-user/0100-search.js @@ -0,0 +1,19 @@ +/// +describe("Search", () => { + it("should work", () => { + //SEARCH + cy.get("[data-cy=navicon]").click(); + cy.get("[data-cy='nav/home-search']").click(); + cy.url().should("include", "/home-search"); + cy.get("[data-cy=phrase]").clear().type("xyz{enter}"); + //check for expected results + cy.contains("Customer"); + cy.contains("XYZ Accounting"); + cy.contains("Head Office"); + cy.contains("XYZ Head Office"); + + //END OF TEST + //----------------------------------------------------- + }); + }); + \ No newline at end of file diff --git a/e2e/tests/regression/accounting-user/accounting-features.js b/e2e/tests/regression/accounting-user/accounting-features.js index 2261997..51cf48e 100644 --- a/e2e/tests/regression/accounting-user/accounting-features.js +++ b/e2e/tests/regression/accounting-user/accounting-features.js @@ -1,5 +1,5 @@ /// -describe("When Accounting user logs in", () => { +describe.skip("When Accounting user logs in", () => { it("should correctly run all functionality", () => { //format for typing input and setting value is always YYYY-MM-DD for date and HH:MM in 24 hour time for time const dNow = new Date(); @@ -14,16 +14,7 @@ describe("When Accounting user logs in", () => { .toString() .padStart(2, "0")}:${dNow.getMinutes().toString().padStart(2, "0")}`; - cy.visit("/login"); - - cy.get("input[name=username]").clear().type(Cypress.env("accountinguser")); - - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("accountingpassword")}{enter}`); - - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("accounting"); //open nav pane cy.get("[data-cy=navicon]").click(); diff --git a/e2e/tests/regression/service-user/service-user-create-workorder.js b/e2e/tests/regression/service-user/service-user-create-workorder.js index 72761ed..45f7cf3 100644 --- a/e2e/tests/regression/service-user/service-user-create-workorder.js +++ b/e2e/tests/regression/service-user/service-user-create-workorder.js @@ -2,16 +2,9 @@ import dayjs from "../../../support/dayjs.min.js"; -describe("When Service user logs in", () => { +describe.skip("When Service user logs in", () => { it("should correctly run all functionality", () => { - cy.visit("/login"); - cy.get("input[name=username]").clear().type(Cypress.env("serviceuser")); - // {enter} causes the form to submit - cy.get("input[name=password]") - .clear() - .type(`${Cypress.env("servicepassword")}{enter}`); - - cy.url().should("include", "/ay-evaluate"); + cy.ayLogin("service"); //open nav pane cy.get("[data-cy=navicon]").click();