279 lines
11 KiB
JavaScript
279 lines
11 KiB
JavaScript
/// <reference types="cypress" />
|
|
|
|
import dayjs from "../../../support/dayjs.min.js";
|
|
|
|
describe("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");
|
|
|
|
//open nav pane
|
|
cy.get("[data-cy=navicon]").click();
|
|
cy.contains("- Service"); //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 });
|
|
|
|
// //PROJECT
|
|
// cy.get("[data-cy=navicon]").click();
|
|
// cy.get("[data-cy=service]").click();
|
|
// cy.get("[data-cy='nav/svc-projects']").click();
|
|
// cy.url().should("include", "/svc-projects");
|
|
// cy.get("[data-cy=projectsTable]");
|
|
// cy.get("[data-cy='project-list:new']:first").click();
|
|
// cy.get("[data-cy=name]").type(
|
|
// `${Cypress.config("cyid")}-test-project{enter}`
|
|
// );
|
|
// cy.get("[data-cy='project-edit:save'] > .v-btn__content").click();
|
|
|
|
//WORKORDER
|
|
cy.get("[data-cy=navicon]").click();
|
|
cy.get("[data-cy=service]").click(); //only if not setting project above
|
|
cy.get("[data-cy='nav/svc-workorders']").click();
|
|
cy.url().should("include", "/svc-workorders");
|
|
cy.get("[data-cy=workordersTable]");
|
|
cy.get("[data-cy='workorder-list:new']:first").click();
|
|
cy.choosePickList("customerId", "XYZ");
|
|
//Status
|
|
cy.get("[data-cy='woState:open']").click();
|
|
cy.chooseVSelect("woState:picker", "Scheduled");
|
|
cy.get("[data-cy='woState:btnok']").click();
|
|
|
|
//Address;
|
|
cy.get("[data-cy='woAddress:open']").click();
|
|
cy.get("[data-cy=address]").type(
|
|
`${Cypress.config("cyid")} E. First St{enter}`
|
|
);
|
|
cy.get("[data-cy=city]").type("Los Angeles");
|
|
cy.get("[data-cy=region]").type("California");
|
|
cy.get("[data-cy=country]").type("USA");
|
|
cy.get("[data-cy=latitude]").type("34.052234");
|
|
cy.get("[data-cy=longitude]").type("-118.243685");
|
|
cy.get("[data-cy=postAddress]").type(`Box ${Cypress.config("cyid")}`);
|
|
cy.get("[data-cy=postCity]").type("Los Angeles");
|
|
cy.get("[data-cy=postRegion]").type("CA");
|
|
cy.get("[data-cy=postCountry]").type("US");
|
|
cy.get("[data-cy=postCode]").type("90012");
|
|
cy.get("[data-cy='woAddress:btnok']").click();
|
|
|
|
cy.get("[data-cy=notes]").type(`e2ewosummary`);
|
|
cy.get("[data-cy='completeByDate:date']").type(
|
|
dayjs().add(7, "day").format("YYYY-MM-DD")
|
|
);
|
|
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.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`);
|
|
cy.get("[data-cy=customerReferenceNumber]").type(
|
|
`cref-${Cypress.config("cyid")}`
|
|
);
|
|
cy.get("[data-cy=internalReferenceNumber]").type(
|
|
`intref-${Cypress.config("cyid")}`
|
|
);
|
|
cy.get("[data-cy=tags]").click().type("zone1{enter}"); //select some tags
|
|
cy.get("[data-cy=tags]").click().type("blue{enter}");
|
|
cy.get("[data-cy=tags]").click().type("jade{enter}");
|
|
cy.get("[data-cy=wiki] > div > .v-btn").click();
|
|
cy.get("[data-cy=wikiDesignView]").click();
|
|
cy.get("[data-cy=wikiEditor]").type(
|
|
"# H1{enter}## H2{enter} ### H3{enter}#### 😀🍕"
|
|
);
|
|
cy.get("[data-cy=wiki] > :nth-child(1) > .v-btn").click();
|
|
|
|
//Item
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemNew]").click();
|
|
cy.get('[data-cy="Items.Notes"]').type(`e2ewoitemnotes`);
|
|
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");
|
|
|
|
//Unit
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddUnit]").click();
|
|
cy.choosePickList("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`);
|
|
|
|
//Scheduled User
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddScheduledUser]").click();
|
|
|
|
cy.get("[data-cy='startDate:date']").type(dayjs().format("YYYY-MM-DD"));
|
|
cy.get("[data-cy='startDate:time']").type(dayjs().format("HH:mm"));
|
|
cy.get("[data-cy='stopDate:date']").type(
|
|
dayjs().add(1, "hour").format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='stopDate:time']").type(
|
|
dayjs().add(1, "hour").format("HH:mm")
|
|
);
|
|
cy.choosePickList("scheduledUsers.userid", "TechRestricted");
|
|
cy.choosePickList("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.get("[data-cy=woItemTaskGroupAdd]").click();
|
|
|
|
//Part
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddPart]").click();
|
|
cy.get("[data-cy=woItemPartsHeader]").click();
|
|
cy.get("[data-cy=woItemPartAssemblySelect]").click();
|
|
cy.choosePickList("selectedPartAssembly", "asm");
|
|
cy.get("[data-cy=woItemPartAssemblyAdd]").click();
|
|
|
|
//Labor
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddLabor]").click();
|
|
|
|
cy.get("[data-cy='serviceStartDate:date']").type(
|
|
dayjs().format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='serviceStartDate:time']").type(dayjs().format("HH:mm"));
|
|
cy.get("[data-cy='serviceStopDate:date']").type(
|
|
dayjs().add(1, "hour").format("YYYY-MM-DD")
|
|
);
|
|
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.get("[data-cy=laborserviceDetails]").type("e2elabordeets");
|
|
|
|
//Travel
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddTravel]").click();
|
|
|
|
cy.get("[data-cy='travelStartDate:date']").type(
|
|
dayjs().format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='travelStartDate:time']").type(dayjs().format("HH:mm"));
|
|
cy.get("[data-cy='travelStopDate:date']").type(
|
|
dayjs().add(1, "hour").format("YYYY-MM-DD")
|
|
);
|
|
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.get("[data-cy=travelTravelRateDistance]").type("123");
|
|
cy.get("[data-cy=traveltravelDetails]").type("e2etraveldeets");
|
|
|
|
//Expense
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddExpense]").click();
|
|
cy.get('[data-cy="expenses.name"]').type("e2eexpensesummary");
|
|
cy.get('[data-cy="expenses.totalCost"]').type("250.00");
|
|
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.get("[data-cy='expenses.reimburseUser']").check({ force: true });
|
|
cy.choosePickList("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.get('[data-cy="loans.quantity"]').type("5");
|
|
|
|
cy.get("[data-cy='loans.loaned:date']").type(
|
|
dayjs().add(1, "hour").format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='loans.loaned:time']").type(
|
|
dayjs().add(1, "hour").format("HH:mm")
|
|
);
|
|
cy.get("[data-cy='loans.due:date']").type(
|
|
dayjs().add(3, "day").format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='loans.due:time']").type(
|
|
dayjs().add(3, "day").format("HH:mm")
|
|
);
|
|
cy.get('[data-cy="loans.notes"]').type("e2eloannotes");
|
|
|
|
//OutsideService
|
|
cy.get("[data-cy=woItemHeader]").click();
|
|
cy.get("[data-cy=woItemAddOutsideService]").click();
|
|
cy.choosePickList("outsideServices.unitId", "e2e");
|
|
cy.choosePickList("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.get('[data-cy="outsideServices.trackingNumber"]').type(
|
|
"e2e-outsideservice-tracking#"
|
|
);
|
|
cy.get('[data-cy="outsideServices.shippingCost"]').type("12.34");
|
|
cy.get('[data-cy="outsideServices.shippingPrice"]').type("56.78");
|
|
cy.get("[data-cy='outsideServices.sentDate:date']").type(
|
|
dayjs().subtract(7, "day").format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='outsideServices.sentDate:time']").type(
|
|
dayjs().subtract(7, "day").format("HH:mm")
|
|
);
|
|
cy.get("[data-cy='outsideServices.etaDate:date']").type(
|
|
dayjs().subtract(3, "day").format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='outsideServices.etaDate:time']").type(
|
|
dayjs().subtract(3, "day").format("HH:mm")
|
|
);
|
|
cy.get("[data-cy='outsideServices.returnDate:date']").type(
|
|
dayjs().format("YYYY-MM-DD")
|
|
);
|
|
cy.get("[data-cy='outsideServices.returnDate:time']").type(
|
|
dayjs().format("HH:mm")
|
|
);
|
|
cy.choosePickList("outsideServices.taxCodeId", "Services");
|
|
cy.get('[data-cy="outsideServices.notes"]').type(
|
|
"e2e-outsideservice-notes"
|
|
);
|
|
|
|
//-------------------------------
|
|
//Save
|
|
cy.get("[data-cy=notes]").type(` eot.`); //make dirty again, for some reason when get here dirty seems to go away
|
|
cy.get("[data-cy='workorder-edit:save'] > .v-btn__content").click();
|
|
cy.contains(
|
|
"These are alert notes displayed on workorders about this GOLD contract"
|
|
);
|
|
|
|
//wait for save, workorder save can take forever due to all the separate posts
|
|
//this will ensure it no matter how long it takes up to the timeout period it will wait
|
|
//for non-zero path
|
|
cy.location("pathname", { timeout: 20000 }).should(
|
|
"not.eq",
|
|
"/svc-workorders/0"
|
|
);
|
|
|
|
// //LOGOUT
|
|
// cy.get("[data-cy=navicon]").click(); //{force:true}
|
|
// cy.get("[data-cy=logout]").click();
|
|
// cy.url().should("include", "/login");
|
|
|
|
//END OF TEST
|
|
//-----------------------------------------------------
|
|
});
|
|
});
|