From 660e73acf845343626bedba0db3c38106513c6a2 Mon Sep 17 00:00:00 2001 From: Alok Date: Thu, 14 Nov 2024 23:46:45 +0530 Subject: [PATCH 1/3] Tests to verify error handling and access restrictions during facility creation --- .../e2e/facility_spec/FacilityCreation.cy.ts | 33 +++++++++++++++++++ .../pageobject/Facility/FacilityCreation.ts | 4 +++ 2 files changed, 37 insertions(+) diff --git a/cypress/e2e/facility_spec/FacilityCreation.cy.ts b/cypress/e2e/facility_spec/FacilityCreation.cy.ts index 5e644238999..1993b7717f9 100644 --- a/cypress/e2e/facility_spec/FacilityCreation.cy.ts +++ b/cypress/e2e/facility_spec/FacilityCreation.cy.ts @@ -59,6 +59,11 @@ describe("Facility Creation", () => { const triageErrorMessage = ["This field is required"]; const facilityType = "Primary Health Centres"; + const nonAdminUsers = [ + { username: "dummynurse1", password: "Coronasafe@123" }, + { username: "devdoctor", password: "Coronasafe@123" }, + ]; + before(() => { loginPage.loginAsDistrictAdmin(); cy.saveLocalStorage(); @@ -317,6 +322,34 @@ describe("Facility Creation", () => { ); }); + it("Should display error when district admin tries to create facility in a different district", () => { + facilityPage.visitCreateFacilityPage(); + facilityPage.fillFacilityName(facilityName); + facilityPage.selectFacilityType(facilityType); + facilityPage.fillPincode("682001"); + facilityPage.selectStateOnPincode("Kerala"); + facilityPage.selectDistrictOnPincode("Kottayam"); + facilityPage.selectLocalBody("Arpookara"); + facilityPage.selectWard("5"); + facilityPage.fillAddress(facilityAddress); + facilityPage.fillPhoneNumber(facilityNumber); + facilityPage.submitForm(); + facilityPage.verifyErrorNotification( + "You do not have permission to perform this action.", + ); + }); + + it("Access Restriction for Non-Admin Users to facility creation page", () => { + nonAdminUsers.forEach((user) => { + loginPage.login(user.username, user.password); + cy.visit("/facility/create"); + + facilityPage.verifyErrorNotification( + "You don't have permission to perform this action. Contact the admin", + ); + }); + }); + afterEach(() => { cy.saveLocalStorage(); }); diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts index 6ce0cc6270e..80cf5e4a7be 100644 --- a/cypress/pageobject/Facility/FacilityCreation.ts +++ b/cypress/pageobject/Facility/FacilityCreation.ts @@ -302,6 +302,10 @@ class FacilityPage { cy.verifyNotification(message); } + verifyErrorNotification(message: string) { + cy.verifyNotification(message); + } + visitAlreadyCreatedFacility() { cy.intercept("GET", "**/api/v1/facility/**").as("getFacilities"); cy.get("[id='facility-details']").first().click(); From e433a09afa8ee292d4bce35e5207d135bc2785d0 Mon Sep 17 00:00:00 2001 From: Mohammed Nihal <57055998+nihal467@users.noreply.github.com> Date: Tue, 19 Nov 2024 02:20:39 +0530 Subject: [PATCH 2/3] reuse already existing functions --- cypress/e2e/facility_spec/FacilityCreation.cy.ts | 16 ++++++++-------- cypress/pageobject/Facility/FacilityCreation.ts | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cypress/e2e/facility_spec/FacilityCreation.cy.ts b/cypress/e2e/facility_spec/FacilityCreation.cy.ts index 1993b7717f9..5fd988480fc 100644 --- a/cypress/e2e/facility_spec/FacilityCreation.cy.ts +++ b/cypress/e2e/facility_spec/FacilityCreation.cy.ts @@ -59,11 +59,6 @@ describe("Facility Creation", () => { const triageErrorMessage = ["This field is required"]; const facilityType = "Primary Health Centres"; - const nonAdminUsers = [ - { username: "dummynurse1", password: "Coronasafe@123" }, - { username: "devdoctor", password: "Coronasafe@123" }, - ]; - before(() => { loginPage.loginAsDistrictAdmin(); cy.saveLocalStorage(); @@ -340,13 +335,18 @@ describe("Facility Creation", () => { }); it("Access Restriction for Non-Admin Users to facility creation page", () => { - nonAdminUsers.forEach((user) => { - loginPage.login(user.username, user.password); - cy.visit("/facility/create"); + const nonAdminLoginMethods = [ + loginPage.loginAsDevDoctor.bind(loginPage), + loginPage.loginAsStaff.bind(loginPage), + ]; + nonAdminLoginMethods.forEach((loginMethod) => { + loginMethod(); + cy.visit("/facility/create"); facilityPage.verifyErrorNotification( "You don't have permission to perform this action. Contact the admin", ); + cy.clearCookies(); }); }); diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts index 80cf5e4a7be..59ce2b99090 100644 --- a/cypress/pageobject/Facility/FacilityCreation.ts +++ b/cypress/pageobject/Facility/FacilityCreation.ts @@ -51,7 +51,7 @@ class FacilityPage { } submitForm() { - cy.get("button#submit").click(); + cy.submitButton("Save Facility"); } selectBedType(bedType: string) { From 4971f8133a8b689f15f2111f936cde48ecfaa792 Mon Sep 17 00:00:00 2001 From: Mohammed Nihal <57055998+nihal467@users.noreply.github.com> Date: Tue, 19 Nov 2024 02:36:18 +0530 Subject: [PATCH 3/3] reverse function --- cypress/pageobject/Facility/FacilityCreation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts index 59ce2b99090..80cf5e4a7be 100644 --- a/cypress/pageobject/Facility/FacilityCreation.ts +++ b/cypress/pageobject/Facility/FacilityCreation.ts @@ -51,7 +51,7 @@ class FacilityPage { } submitForm() { - cy.submitButton("Save Facility"); + cy.get("button#submit").click(); } selectBedType(bedType: string) {