diff --git a/cypress/integrations/admin_activities/operations_activities/add_operation_activity.cy.ts b/cypress/integrations/admin_activities/operations_activities/add_operation_activity.cy.ts new file mode 100644 index 000000000..f7df1e8bf --- /dev/null +++ b/cypress/integrations/admin_activities/operations_activities/add_operation_activity.cy.ts @@ -0,0 +1,55 @@ +/// + +const OPERATION_STARTS_PATH = "/admin/operations"; + +describe("Add Operation Activity specs", () => { + it("should render the ui", () => { + cy.authenticate(OPERATION_STARTS_PATH); + cy.dataCy("activity-title").contains("Operations"); + }); + + it("should show operation creation form", () => { + cy.dataCy("add-new-operation").click(); + cy.dataCy("activity-title").contains("Add Operation"); + }); + + it("should fail to create a new operation", () => { + cy.byId("code").type("FAIL"); + cy.byId("type").click(); + cy.get('.MuiAutocomplete-popper li[data-option-index="0"]').click(); + cy.byId("description").type("Laparotomy"); + cy.get('input[name="major"]').check(); + cy.dataCy("submit-form").click(); + cy.dataCy("info-box").contains("Fail"); + }); + + it("should successfully create a new operation", () => { + cy.byId("code").clear().type("202"); + cy.dataCy("submit-form").click(); + cy.dataCy("dialog-info").contains( + "Operation has been created successfully!" + ); + cy.dataCy("approve-dialog").click(); + }); + + it("should redirect after operation creation", () => { + cy.dataCy("activity-title").contains("Operations"); + }); + + it("should cancel the cancellation of the operation creation", () => { + cy.dataCy("add-new-operation").click(); + cy.dataCy("cancel-form").click(); + cy.dataCy("dialog-info").contains( + "Are you sure to Reset the Form? All the unsaved data will be lost." + ); + cy.dataCy("close-dialog").click(); + cy.dataCy("dialog-info").should("not.exist"); + }); + + it("should cancel the operation creation", () => { + cy.dataCy("cancel-form").click(); + cy.dataCy("approve-dialog").click(); + cy.dataCy("dialog-info").should("not.exist"); + cy.dataCy("activity-title").contains("Operations"); + }); +}); diff --git a/cypress/integrations/admin_activities/operations_activities/edit_operation_activity.cy.ts b/cypress/integrations/admin_activities/operations_activities/edit_operation_activity.cy.ts new file mode 100644 index 000000000..46f9c44e4 --- /dev/null +++ b/cypress/integrations/admin_activities/operations_activities/edit_operation_activity.cy.ts @@ -0,0 +1,53 @@ +/// + +const OPERATION_START_PATH = "/admin/operations"; + +describe("Operations Edit Activity specs", () => { + it("should render the ui", () => { + cy.authenticate(OPERATION_START_PATH); + cy.dataCy("activity-title").contains("Operations"); + }); + + it("should show operation edit form", () => { + cy.dataCy("table-edit-action").first().click(); + cy.dataCy("activity-title").contains("Edit Operation"); + }); + + it("should fail to edit the operation", () => { + cy.byId("code").should("be.disabled"); + cy.get('input[name="major"]').uncheck(); + cy.get('input[name="major"]').check(); + cy.byId("type").clear().blur(); + cy.dataCy("submit-form").click(); + cy.dataCy("dialog-info").should("not.exist"); + }); + + it("should successfully save operation changes", () => { + cy.byId("type").click(); + cy.get('.MuiAutocomplete-popper li[data-option-index="0"]').click(); + cy.dataCy("submit-form").click(); + cy.dataCy("dialog-info").contains("has been updated successfully!"); + cy.dataCy("approve-dialog").click(); + }); + + it("should redirect after operation update", () => { + cy.dataCy("activity-title").contains("Operations"); + }); + + it("should cancel the cancellation of the operation creation", () => { + cy.dataCy("table-edit-action").first().click(); + cy.dataCy("cancel-form").click(); + cy.dataCy("dialog-info").contains( + "Are you sure to Reset the Form? All the unsaved data will be lost." + ); + cy.dataCy("close-dialog").click(); + cy.dataCy("dialog-info").should("not.be.visible"); + }); + + it("should cancel the operation update", () => { + cy.dataCy("cancel-form").click(); + cy.dataCy("approve-dialog").click(); + cy.dataCy("dialog-info").should("not.exist"); + cy.dataCy("activity-title").contains("Operations"); + }); +}); diff --git a/cypress/integrations/admin_activities/operations_activities/manage_operations_activity.cy.ts b/cypress/integrations/admin_activities/operations_activities/manage_operations_activity.cy.ts new file mode 100644 index 000000000..7701e352a --- /dev/null +++ b/cypress/integrations/admin_activities/operations_activities/manage_operations_activity.cy.ts @@ -0,0 +1,19 @@ +/// + +const OPERATIONS_START_PATH = "/admin/operations"; + +describe("Operations Activity specs", () => { + it("should render the ui", () => { + cy.authenticate(OPERATIONS_START_PATH); + cy.dataCy("activity-title").contains("Operations"); + }); + + it("should present the table with four rows", () => { + cy.dataCy("operations-table") + .find("table") + .then(($table) => { + const rows = $table.find("tbody tr"); + expect(rows.length).equal(4); + }); + }); +}); diff --git a/src/components/accessories/admin/operations/Operations.tsx b/src/components/accessories/admin/operations/Operations.tsx index e55d94aec..e84c22045 100644 --- a/src/components/accessories/admin/operations/Operations.tsx +++ b/src/components/accessories/admin/operations/Operations.tsx @@ -37,7 +37,7 @@ export const Operations = () => { }; return ( -
+
{ type="button" variant="contained" color="primary" + dataCy="add-new-operation" > {t("operation.addOperation")} diff --git a/src/components/accessories/admin/operations/operationForm/OperationForm.tsx b/src/components/accessories/admin/operations/operationForm/OperationForm.tsx index ed364ccf9..537c3a633 100644 --- a/src/components/accessories/admin/operations/operationForm/OperationForm.tsx +++ b/src/components/accessories/admin/operations/operationForm/OperationForm.tsx @@ -205,12 +205,18 @@ const OperationForm: FC = ({
-