From c013fb6c9e69ffc9fa644303d30f63188a06c762 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 20 Dec 2021 20:13:54 +0000 Subject: [PATCH] --- e2e/support/commands.js | 26 ++++++++- .../regression/accounting-user/0200-memo.js | 57 +++++++++++++++++++ .../accounting-user/accounting-features.js | 6 +- .../service-user-create-workorder.js | 48 ++++++++-------- 4 files changed, 108 insertions(+), 29 deletions(-) create mode 100644 e2e/tests/regression/accounting-user/0200-memo.js diff --git a/e2e/support/commands.js b/e2e/support/commands.js index 51637be..ddb1e42 100644 --- a/e2e/support/commands.js +++ b/e2e/support/commands.js @@ -24,14 +24,14 @@ // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) -Cypress.Commands.add("chooseVSelect", (dataCyTag, selectionText) => { +Cypress.Commands.add("ayChooseVSelect", (dataCyTag, selectionText) => { cy.get(`[data-cy='${dataCyTag}']`).click({ force: true }); cy.get(".v-list-item__title") .contains(new RegExp("^" + selectionText + "$", "g")) .click({ force: true }); }); -Cypress.Commands.add("choosePickList", (dataCyTag, selectionText) => { +Cypress.Commands.add("ayChooseGZPickList", (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(); @@ -52,3 +52,25 @@ if(!urlAfterLogin){ cy.url().should("include", urlAfterLogin); }); + +Cypress.Commands.add("ayChooseExistingTags", (dataCyTag, tagList) => { + ; + for(let i=0;i{ + // t.click(); + // for(let i=0;i{ + // cy.type(z); + // cy.contains(z);//look for the text on the page + // cy.type("{downarrow}{enter}"); + // }); + //}) + +}); diff --git a/e2e/tests/regression/accounting-user/0200-memo.js b/e2e/tests/regression/accounting-user/0200-memo.js new file mode 100644 index 0000000..1f0a0b4 --- /dev/null +++ b/e2e/tests/regression/accounting-user/0200-memo.js @@ -0,0 +1,57 @@ +/// +describe("Memo features", () => { + it("should work", () => { + cy.ayLogin("accounting"); + cy.get("[data-cy=navicon]").click(); + cy.get("[data-cy=home]").click(); + cy.get("[data-cy='nav/home-memos']").click(); + cy.url().should("include", "/home-memos"); + cy.get("[data-cy=memosTable]"); + cy.get("[data-cy='memo-list:new']").click(); + cy.url().should("include", "/home-memos/"); + cy.get("[data-cy=pickListSelectedUserId]") + .click() + .type("accounting{downarrow}{enter}"); //select Accounting user (self) + cy.get("[data-cy=name]").type( + `${Cypress.config("cyid")}-test-subject{enter}` + ); + cy.get("[data-cy=notes]").type( + `The quick brown fox jumped{enter}over the six lazy dogs{enter}eot` + ); + + //TODO: TURN THIS INTO A COMMAND AND THEN SWAP THAT OUT EVERY EXISTING TEST WITH TAG ENTRY + + // cy.get("[data-cy=tags]").click().type("zone1{downarrow}{enter}"); //select some tags + // cy.get("[data-cy=tags]").click().type("blue{downarrow}{enter}"); + // cy.get("[data-cy=tags]").click().type("zone2{downarrow}{enter}"); + cy.ayChooseExistingTags("tags",['zone1','blue','zone2']); + + cy.get("[data-cy='memo-edit:save'] > .v-btn__content").click(); + cy.url().should("include", "/home-memos"); //wait for nav + cy.contains(`${Cypress.config("cyid")}-test-subject`).click(); //find and open memo record + cy.contains("zone1"); + cy.contains("blue"); + cy.contains("zone2"); + + //reply + cy.get("[data-cy=contextmenu]").click(); + cy.get("[data-cy='memo-edit:reply']").click(); + cy.url().should("include", "/home-memos/"); + cy.get("[data-cy=notes]").type(`this is my reply`); + cy.get("[data-cy='memo-edit:save'] > .v-btn__content").click(); + cy.contains(`RE: ${Cypress.config("cyid")}-test-subject`).click(); //find and open reply + + //forward to superuser + cy.get("[data-cy=contextmenu]").click(); + cy.get("[data-cy='memo-edit:forward']").click(); + cy.url().should("include", "/home-memos/"); + cy.get("[data-cy=notes]").type( + `Hello SuperUser this is my forward to you!{enter}eot{enter}` + ); + cy.get("[data-cy=pickListSelectedUserId]") + .click() + .type("SuperUser{downarrow}{enter}"); + cy.get("[data-cy='memo-edit:save'] > .v-btn__content").click(); + }); + }); + \ 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 51cf48e..e3735ff 100644 --- a/e2e/tests/regression/accounting-user/accounting-features.js +++ b/e2e/tests/regression/accounting-user/accounting-features.js @@ -124,8 +124,8 @@ describe.skip("When Accounting user logs in", () => { cy.url().should("include", "/home-notify-subscriptions"); cy.get("[data-cy='notify-subscriptions:new']:first").click(); cy.url().should("include", "/home-notify-subscriptions/0"); - cy.chooseVSelect("eventType", "Object created"); - cy.chooseVSelect("ayaType", "Contract"); + cy.ayChooseVSelect("eventType", "Object created"); + cy.ayChooseVSelect("ayaType", "Contract"); cy.get("[data-cy='notify-subscription:save'] > .v-btn__content").click(); //confirm cy.get("[data-cy=navicon]").click(); @@ -213,7 +213,7 @@ describe.skip("When Accounting user logs in", () => { ); cy.get("[data-cy=charge]").type("100.00"); cy.get("[data-cy=cost]").type("50.00"); - cy.chooseVSelect("unit", "hour"); + cy.ayChooseVSelect("unit", "hour"); cy.get("[data-cy=notes]").type(`Test svc rate NOTES!!!{enter}eot{enter}`); cy.get("[data-cy='service-rate-edit:save'] > .v-btn__content").click(); 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 45f7cf3..c18627d 100644 --- a/e2e/tests/regression/service-user/service-user-create-workorder.js +++ b/e2e/tests/regression/service-user/service-user-create-workorder.js @@ -35,10 +35,10 @@ describe.skip("When Service user logs in", () => { cy.url().should("include", "/svc-workorders"); cy.get("[data-cy=workordersTable]"); cy.get("[data-cy='workorder-list:new']:first").click(); - cy.choosePickList("customerId", "XYZ"); + cy.ayChooseGZPickList("customerId", "XYZ"); //Status cy.get("[data-cy='woState:open']").click(); - cy.chooseVSelect("woState:picker", "Scheduled"); + cy.ayChooseVSelect("woState:picker", "Scheduled"); cy.get("[data-cy='woState:btnok']").click(); @@ -84,9 +84,9 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy='completeByDate:time']").type( dayjs().add(7, "day").format("HH:mm") ); - cy.choosePickList("contractId", "Gold"); - // cy.choosePickList("projectId", `${Cypress.config("cyid")}-test-project`); - cy.choosePickList("projectId", "e2e"); + cy.ayChooseGZPickList("contractId", "Gold"); + // cy.ayChooseGZPickList("projectId", `${Cypress.config("cyid")}-test-project`); + cy.ayChooseGZPickList("projectId", "e2e"); cy.get("[data-cy='serviceDate:date']").type(dayjs().format("YYYY-MM-DD")); cy.get("[data-cy='serviceDate:time']").type(dayjs().format("HH:mm")); cy.get("[data-cy=customerContactName]").type(`Jayne Smith`); @@ -113,13 +113,13 @@ describe.skip("When Service user logs in", () => { cy.get('[data-cy="items.techNotes"]').type(`e2etechnotes`); cy.get("[data-cy='requestDate:date']").type(dayjs().format("YYYY-MM-DD")); cy.get("[data-cy='requestDate:time']").type(dayjs().format("HH:mm")); - cy.choosePickList("workOrderItemStatusId", "Item scheduled"); - cy.choosePickList("workOrderItemPriorityId", "One week"); + cy.ayChooseGZPickList("workOrderItemStatusId", "Item scheduled"); + cy.ayChooseGZPickList("workOrderItemPriorityId", "One week"); //Unit cy.get("[data-cy=woItemHeader]").click(); cy.get("[data-cy=woItemAddUnit]").click({force:true}); - cy.choosePickList("units.unitId", "e2e"); + cy.ayChooseGZPickList("units.unitId", "e2e"); cy.get("[data-cy=woItemUnitGetWarrantyInfo]").click(); cy.contains("Receipt Number:"); //just confirm it displayed something cy.get("[data-cy=unitUnitNotes]").type(`e2ewoitemunitnotes`); @@ -136,15 +136,15 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy='stopDate:time']").type( dayjs().add(1, "hour").format("HH:mm") ); - cy.choosePickList("scheduledUsers.userid", "TechRestricted"); - cy.choosePickList("scheduledUsers.serviceRateId", "e2e"); + cy.ayChooseGZPickList("scheduledUsers.userid", "TechRestricted"); + cy.ayChooseGZPickList("scheduledUsers.serviceRateId", "e2e"); //Task cy.get("[data-cy=woItemHeader]").click(); cy.get("[data-cy=woItemAddTask]").click(); cy.get("[data-cy=woItemTasksHeader]").click(); cy.get("[data-cy=woItemTaskGroupSelect]").click(); - cy.choosePickList("selectedTaskGroup", "Aerostat"); + cy.ayChooseGZPickList("selectedTaskGroup", "Aerostat"); cy.get("[data-cy=woItemTaskGroupAdd]").click(); //Part @@ -152,7 +152,7 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy=woItemAddPart]").click(); cy.get("[data-cy=woItemPartsHeader]").click(); cy.get("[data-cy=woItemPartAssemblySelect]").click(); - cy.choosePickList("selectedPartAssembly", "asm"); + cy.ayChooseGZPickList("selectedPartAssembly", "asm"); cy.get("[data-cy=woItemPartAssemblyAdd]").click(); //Labor @@ -169,8 +169,8 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy='serviceStopDate:time']").type( dayjs().add(1, "hour").format("HH:mm") ); - cy.choosePickList("labors.userid", "TechRestricted"); - cy.choosePickList("labors.serviceRateId", "e2e"); + cy.ayChooseGZPickList("labors.userid", "TechRestricted"); + cy.ayChooseGZPickList("labors.serviceRateId", "e2e"); cy.get("[data-cy=laborserviceDetails]").type("e2elabordeets"); //Travel @@ -187,8 +187,8 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy='travelStopDate:time']").type( dayjs().add(1, "hour").format("HH:mm") ); - cy.choosePickList("travels.userid", "TechRestricted"); - cy.choosePickList("travels.travelRateId", "e2e"); + cy.ayChooseGZPickList("travels.userid", "TechRestricted"); + cy.ayChooseGZPickList("travels.travelRateId", "e2e"); cy.get("[data-cy=travelTravelRateDistance]").type("123"); cy.get("[data-cy=traveltravelDetails]").type("e2etraveldeets"); @@ -200,16 +200,16 @@ describe.skip("When Service user logs in", () => { cy.get('[data-cy="expenses.chargeAmount"]').type("200.00"); cy.get("[data-cy='expenses.chargeToCustomer']").check({ force: true }); cy.get('[data-cy="expenses.taxPaid"]').type("17.00"); - cy.choosePickList("expenses.chargeTaxCode", "Goods"); + cy.ayChooseGZPickList("expenses.chargeTaxCode", "Goods"); cy.get("[data-cy='expenses.reimburseUser']").check({ force: true }); - cy.choosePickList("expenses.user", "TechRestricted"); + cy.ayChooseGZPickList("expenses.user", "TechRestricted"); cy.get('[data-cy="expenses.description"]').type("e2eexpensedescription"); //Loan cy.get("[data-cy=woItemHeader]").click(); cy.get("[data-cy=woItemAddLoan]").click(); - cy.choosePickList("loans.loanUnitId", "e2e"); - cy.chooseVSelect("loans.rate", "Hourly charge"); + cy.ayChooseGZPickList("loans.loanUnitId", "e2e"); + cy.ayChooseVSelect("loans.rate", "Hourly charge"); cy.get('[data-cy="loans.quantity"]').type("5"); cy.get("[data-cy='loans.loaned:date']").type( @@ -229,12 +229,12 @@ describe.skip("When Service user logs in", () => { //OutsideService cy.get("[data-cy=woItemHeader]").click(); cy.get("[data-cy=woItemAddOutsideService]").click(); - cy.choosePickList("outsideServices.unitId", "e2e"); - cy.choosePickList("outsideServices.vendorSentToId", "e2e"); + cy.ayChooseGZPickList("outsideServices.unitId", "e2e"); + cy.ayChooseGZPickList("outsideServices.vendorSentToId", "e2e"); cy.get('[data-cy="outsideServices.rma"]').type("e2e-outsideservice-rma"); cy.get('[data-cy="outsideServices.repairCost"]').type("123.45"); cy.get('[data-cy="outsideServices.repairPrice"]').type("67.89"); - cy.choosePickList("outsideServices.vendorSentViaId", "e2e"); + cy.ayChooseGZPickList("outsideServices.vendorSentViaId", "e2e"); cy.get('[data-cy="outsideServices.trackingNumber"]').type( "e2e-outsideservice-tracking#" ); @@ -258,7 +258,7 @@ describe.skip("When Service user logs in", () => { cy.get("[data-cy='outsideServices.returnDate:time']").type( dayjs().format("HH:mm") ); - cy.choosePickList("outsideServices.taxCodeId", "Services"); + cy.ayChooseGZPickList("outsideServices.taxCodeId", "Services"); cy.get('[data-cy="outsideServices.notes"]').type( "e2e-outsideservice-notes" );