From 5eb31eb5e28d286751f5ec2e8bd71342388480ee Mon Sep 17 00:00:00 2001 From: Alok Date: Tue, 19 Nov 2024 12:26:24 +0530 Subject: [PATCH] Tests to verify error handling and access restrictions during Facility Creation (#9119) --- .../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..5fd988480fc 100644 --- a/cypress/e2e/facility_spec/FacilityCreation.cy.ts +++ b/cypress/e2e/facility_spec/FacilityCreation.cy.ts @@ -317,6 +317,39 @@ 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", () => { + 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(); + }); + }); + afterEach(() => { cy.saveLocalStorage(); }); diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts index 908431e3a65..0fddc3f9799 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();