162 lines
5.2 KiB
JavaScript
162 lines
5.2 KiB
JavaScript
describe(
|
|
"Adding job to checklist",
|
|
{
|
|
defaultCommandTimeout: 5000,
|
|
},
|
|
() => {
|
|
beforeEach(() => {
|
|
cy.visit("/manage");
|
|
|
|
cy.get("body").then(($body) => {
|
|
if ($body.text().includes("Login")) {
|
|
// Log in
|
|
cy.get('[data-cy="username"]').type("john@imex.dev");
|
|
cy.get('[data-cy="password"]').type("john123");
|
|
cy.get('[data-cy="sign-in-button"]').click();
|
|
}
|
|
|
|
cy.get(".ant-table-tbody")
|
|
.should("be.visible")
|
|
.find("tr")
|
|
.should("not.have.class", "ant-table-placeholder");
|
|
});
|
|
});
|
|
|
|
it("adds checklists to the job and set the job to production", () => {
|
|
// Go to a scheduled job
|
|
cy.get(".ant-table-row")
|
|
.contains("Scheduled")
|
|
.first()
|
|
.siblings()
|
|
.find("a")
|
|
.first()
|
|
.click();
|
|
// Click actions button
|
|
cy.get('[data-cy="job-actions-button"]').click();
|
|
// Go to intake
|
|
cy.get('[data-cy="job-intake-button"]').should("not.be.disabled").click();
|
|
cy.url().should("include", "/intake");
|
|
// Fill out the form
|
|
cy.get('[data-cy="checklist-form"]').should("be.visible");
|
|
// Check if form items are not disabled
|
|
cy.get(".ant-form-item").should("not.be.disabled");
|
|
// Checks all the required checklist item
|
|
cy.get('[data-cy="checklist-item-checkbox"]').each((el) => {
|
|
cy.wrap(el).check().as("checkbox");
|
|
cy.get("@checkbox").should("be.checked");
|
|
});
|
|
// Check if `Add Job to Production` is switched to on
|
|
cy.get('[data-cy="add-to-production-switch"]').should(
|
|
"have.attr",
|
|
"aria-checked",
|
|
"true"
|
|
);
|
|
// Select dates for completion and delivery
|
|
cy.get("#scheduled_completion").find(".ant-picker-input").first().click();
|
|
cy.get('[title="2023-06-20"]').should("be.visible").click();
|
|
// Add time selection
|
|
cy.get("#scheduled_delivery").find(".ant-picker-input").first().click();
|
|
cy.get('[title="2023-06-20"]')
|
|
.should("be.visible")
|
|
.click({ multiple: true, force: true });
|
|
// Add time selection
|
|
// Add note
|
|
cy.get('[data-cy="checklist-production-note"]').type("automated testing");
|
|
// Submit the form
|
|
cy.get('[data-cy="checklist-submit-button"]').click();
|
|
|
|
// Job checklist completed.
|
|
cy.url().should("include", "/manage/jobs");
|
|
cy.contains("In Production");
|
|
});
|
|
|
|
it("renders and check the checklist correctly", () => {
|
|
// Go to a job in production
|
|
cy.get(".ant-table-row")
|
|
.contains("Arrived")
|
|
.first()
|
|
.siblings()
|
|
.find("a")
|
|
.first()
|
|
.click();
|
|
// Click the actions button
|
|
cy.get('[data-cy="job-actions-button"]').click();
|
|
// Go to checklists
|
|
cy.get('[data-cy="job-checklist"]').should("not.be.disabled").click();
|
|
// Check if the checklist renders in the page
|
|
cy.get('[data-cy="intake-checklist"]')
|
|
.should("be.visible")
|
|
.find("input")
|
|
.should("be.disabled");
|
|
});
|
|
|
|
it("completes delivery and updates the status", () => {
|
|
// Go to a job in production
|
|
cy.get(".ant-table-row")
|
|
.contains("Arrived")
|
|
.first()
|
|
.siblings()
|
|
.find("a")
|
|
.first()
|
|
.click();
|
|
// Click the actions button
|
|
cy.get('[data-cy="job-actions-button"]').click();
|
|
// Go to checklists
|
|
cy.get('[data-cy="job-deliver"]').should("not.be.disabled").click();
|
|
// Check if the checklist renders in the page
|
|
cy.get('[data-cy="checklist-form"]')
|
|
.should("be.visible")
|
|
.find("input")
|
|
.should("not.be.disabled");
|
|
|
|
cy.get('[data-cy="checklist-item-checkbox"]').each((el) => {
|
|
cy.wrap(el).check().as("checkbox");
|
|
cy.get("@checkbox").should("be.checked");
|
|
});
|
|
|
|
// Select dates for completion and delivery
|
|
cy.get("#actual_completion").find(".ant-picker-input").first().click();
|
|
cy.get('[title="2023-06-20"]').should("be.visible").click();
|
|
// Add time selection
|
|
cy.get("#actual_delivery").find(".ant-picker-input").first().click();
|
|
cy.get('[title="2023-06-20"]')
|
|
.should("be.visible")
|
|
.click({ multiple: true, force: true });
|
|
// Add time selection
|
|
|
|
cy.get('[data-cy="remove-from-production"]').should(
|
|
"have.attr",
|
|
"aria-checked",
|
|
"true"
|
|
);
|
|
// Submit the form
|
|
cy.get('[data-cy="checklist-submit-button"]').click();
|
|
// Job checklist completed.
|
|
cy.url().should("include", "/manage/jobs");
|
|
cy.contains("Delivered");
|
|
|
|
cy.get('[data-cy="job-actions-button"]').click();
|
|
// Go to checklists
|
|
cy.get('[data-cy="job-checklist"]').should("not.be.disabled").click();
|
|
|
|
cy.get('[data-cy="intake-checklist"]')
|
|
.should("be.visible")
|
|
.find("input")
|
|
.should("be.disabled");
|
|
|
|
cy.get('[data-cy="deliver-checklist"]')
|
|
.should("be.visible")
|
|
.find("input")
|
|
.should("be.disabled");
|
|
});
|
|
|
|
// it("speedprint the checklists", () => {
|
|
// // FIXME print button is not working
|
|
// // Go to a job in production
|
|
// // Click the actions button
|
|
// // Go to checklists
|
|
// // Print all the necessary documents for the job
|
|
// });
|
|
}
|
|
);
|