Files
raven-test/e2e/tests/regression/service-user/service-user-create-workorder.js
2021-11-04 23:19:40 +00:00

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
//-----------------------------------------------------
});
});