/// import dayjs from "../../../support/dayjs.min.js"; describe("Workorder creation", () => { it("should work", () => { cy.ayLogin("service"); cy.aySetTestableUserOptions(); cy.visit("/svc-workorders"); cy.url().should("include", "/svc-workorders"); cy.get("[data-cy=workordersTable]"); cy.get("[data-cy='workorder-list:new']:first").click(); cy.ayChooseGZPickList("customerId", "XYZ"); //Status cy.get("[data-cy='woState:open']").click(); cy.ayChooseVSelect("woState:picker", "Scheduled"); cy.get("[data-cy='woState:btnok']").click(); //Signature //First assert there is no signature currently cy.get("[data-cy=sigImage]").should("not.exist"); //make a signature cy.get('[data-cy="customerSignature"]').click(); //only cy click method actually does anything, trigger just seems to sort of simulate but no drawing happens //"sign" cy.get("[data-cy=sigCtrl] > .canvas") .click("topLeft") .click("topRight") .click("center") .click("bottomLeft") .click("bottomRight"); cy.get('[data-cy="sigOK"]').click(); //validate there is a signature now cy.get("[data-cy=sigImage]").should("exist"); //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.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`); cy.get("[data-cy=customerReferenceNumber]").type( `cref-${Cypress.config("cyid")}` ); cy.get("[data-cy=internalReferenceNumber]").type( `intref-${Cypress.config("cyid")}` ); cy.ayChooseExistingTags("tags", ["zone1", "blue", "jade"]); 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.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.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`); //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.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.ayChooseGZPickList("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.ayChooseGZPickList("selectedPartAssembly", "asm"); cy.get("[data-cy=woItemPartAssemblyAdd]").click(); //Labor cy.get("[data-cy=woItemHeader]").click({ force: true }); cy.get("[data-cy=woItemAddLabor]").click({ force: true }); 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.ayChooseGZPickList("labors.userid", "TechRestricted"); cy.ayChooseGZPickList("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.ayChooseGZPickList("travels.userid", "TechRestricted"); cy.ayChooseGZPickList("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.ayChooseGZPickList("expenses.chargeTaxCode", "Goods"); cy.get("[data-cy='expenses.reimburseUser']").check({ force: true }); 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.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( 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.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.ayChooseGZPickList("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.ayChooseGZPickList("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: 30000 }).should( "not.eq", "/svc-workorders/0" ); //----------------------------------------------------- }); });