Skip to content

Commit

Permalink
facility pagination and redirection (#6912)
Browse files Browse the repository at this point in the history
  • Loading branch information
nihal467 authored and Ashesh3 committed Jan 2, 2024
1 parent c4bd9ff commit 77366d0
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 32 deletions.
35 changes: 33 additions & 2 deletions cypress/e2e/facility_spec/facility_homepage.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,23 @@ import FacilityHome from "../../pageobject/Facility/FacilityHome";
import ManageUserPage from "../../pageobject/Users/ManageUserPage";
import FacilityPage from "../../pageobject/Facility/FacilityCreation";
import { UserPage } from "../../pageobject/Users/UserSearch";
import { AssetPagination } from "../../pageobject/Asset/AssetPagination";

describe("Facility Homepage Function", () => {
const loginPage = new LoginPage();
const facilityHome = new FacilityHome();
const facilityPage = new FacilityPage();
const manageUserPage = new ManageUserPage();
const userPage = new UserPage();
const assetPagination = new AssetPagination();
const facilitiesAlias = "downloadFacilitiesCSV";
const capacitiesAlias = "downloadCapacitiesCSV";
const doctorsAlias = "downloadDoctorsCSV";
const triagesAlias = "downloadTriagesCSV";
const facilityname = "Dummy Facility 1";
const statename = "Kerala";
const district = "Ernakulam";
const localbody = "Aikaranad";
const facilitytype = "Private Hospital";

before(() => {
Expand All @@ -31,24 +34,52 @@ describe("Facility Homepage Function", () => {
cy.awaitUrl("/facility");
});

it("Verify the Facility card button redirection", () => {
// view cns button
facilityHome.clickViewCnsButton();
facilityHome.verifyCnsUrl();
facilityHome.navigateBack();
// view notify button
facilityHome.clickFacilityNotifyButton();
facilityHome.verifyAndCloseNotifyModal();
// view facility button
facilityHome.clickViewFacilityDetails();
facilityPage.getFacilityName().should("be.visible");
facilityHome.verifyFacilityDetailsUrl();
facilityHome.navigateBack();
// view patient button
manageUserPage.clickFacilityPatients();
facilityHome.verifyPatientListVisibility();
facilityHome.verifyPatientListUrl();
facilityHome.navigateBack();
// occupancy badge
facilityHome.verifyOccupancyBadgeVisibility();
});

it("Verify the functionality of advance filter", () => {
userPage.clickAdvancedFilters();
facilityPage.selectState(statename);
facilityPage.selectDistrict(district);
// facilityPage.selectLocalBody("Anthikad Grama"); current dummy data have issue in local body
facilityPage.selectLocalBody(localbody);
facilityPage.clickUpdateFacilityType(facilitytype);
userPage.applyFilter();
facilityPage.verifyStateBadgeContent(statename);
facilityPage.verifyDistrictBadgeContent(district);
facilityPage.verifyLocalBodyBadgeContent(localbody);
facilityPage.verifyFacilityTypeBadgeContent(facilitytype);
manageUserPage.assertFacilityInCard(facilityname);
userPage.clearFilters();
userPage.verifyDataTestIdNotVisible("State");
userPage.verifyDataTestIdNotVisible("District");
userPage.verifyDataTestIdNotVisible("Facility type");
userPage.verifyDataTestIdNotVisible("Local Body");
});

it("Search a facility in homepage", () => {
it("Search a facility in homepage and pagination", () => {
// pagination of the facility page
assetPagination.navigateToNextPage();
assetPagination.navigateToPreviousPage();
// search for a facility
manageUserPage.typeFacilitySearch(facilityname);
facilityPage.verifyFacilityBadgeContent(facilityname);
manageUserPage.assertFacilityInCard(facilityname);
Expand Down
69 changes: 40 additions & 29 deletions cypress/e2e/facility_spec/locations.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import { AssetPage } from "../../pageobject/Asset/AssetCreation";
import { UserCreationPage } from "../../pageobject/Users/UserCreation";
import FacilityPage from "../../pageobject/Facility/FacilityCreation";
import FacilityLocation from "../../pageobject/Facility/FacilityLocation";
import FacilityHome from "../../pageobject/Facility/FacilityHome";
// import { AssetPagination } from "../../pageobject/Asset/AssetPagination";

describe("Location Management Section", () => {
const assetPage = new AssetPage();
const userCreationPage = new UserCreationPage();
const facilityPage = new FacilityPage();
const facilityLocation = new FacilityLocation();
const facilityHome = new FacilityHome();
// const assetPagination = new AssetPagination();
const EXPECTED_LOCATION_ERROR_MESSAGES = [
"Name is required",
Expand All @@ -27,7 +29,7 @@ describe("Location Management Section", () => {
const locationModifiedDescription = "Test Modified Description";
const locationModifiedType = "ICU";
const locationModifiedMiddleware = "dev-middleware.coronasafe.live";
const bedName = "Test Bed";
const bedName = "Test-Bed";
const bedDescrption = "test description";
const bedType = "ICU";
const bedStatus = "Vacant";
Expand Down Expand Up @@ -56,6 +58,42 @@ describe("Location Management Section", () => {
cy.get("[id=location-management]").click();
});

it("Add a Bed to facility location along with duplication and deleting a bed", () => {
// mandatory field verification in bed creation
facilityLocation.clickManageBedButton();
facilityLocation.clickAddBedButton();
assetPage.clickassetupdatebutton();
userCreationPage.verifyErrorMessages(EXPECTED_BED_ERROR_MESSAGES);
// create a new single bed and verify
facilityLocation.enterBedName(bedName);
facilityLocation.enterBedDescription(bedDescrption);
facilityLocation.selectBedType(bedType);
assetPage.clickassetupdatebutton();
// Verify the bed creation
facilityLocation.verifyBedNameBadge(bedName);
facilityLocation.verifyBedBadge(bedType);
facilityLocation.verifyBedBadge(bedStatus);
// Try to create duplication bed and verify the error
facilityLocation.clickAddBedButton();
facilityLocation.enterBedName(bedName);
facilityLocation.selectBedType(bedType);
assetPage.clickassetupdatebutton();
facilityLocation.verifyNotification(
"Name - Bed with same name already exists in location"
);
facilityHome.verifyAndCloseNotifyModal();
// edit the created bed
facilityLocation.clickEditBedButton();
facilityLocation.enterBedName(bedModifiedName);
facilityLocation.enterBedDescription(bedModifiedDescrption);
facilityLocation.selectBedType(bedModifiedType);
assetPage.clickassetupdatebutton();
// verify the modification
facilityLocation.verifyBedNameBadge(bedModifiedName);
facilityLocation.verifyBedBadge(bedModifiedType);
facilityLocation.verifyBedBadge(bedStatus);
});

it("Adds Location to a facility and modify it", () => {
// add a new location form mandatory error
facilityLocation.clickAddNewLocationButton();
Expand Down Expand Up @@ -86,7 +124,7 @@ describe("Location Management Section", () => {
facilityLocation.verifyLocationMiddleware(locationModifiedMiddleware);
});

it("Add Multiple Bed to a facility location and delete a bed", () => {
it("Multiple Bed to a facility location and delete a bed", () => {
// create multiple bed and verify
facilityLocation.clickManageBedButton();
facilityLocation.clickAddBedButton();
Expand Down Expand Up @@ -120,33 +158,6 @@ describe("Location Management Section", () => {
// assetPagination.navigateToPreviousPage();
// }); need to be unblocked upon issue #6906 is solved

it("Add Single Bed to a facility location and modify it", () => {
// mandatory field verification in bed creation
facilityLocation.clickManageBedButton();
facilityLocation.clickAddBedButton();
assetPage.clickassetupdatebutton();
userCreationPage.verifyErrorMessages(EXPECTED_BED_ERROR_MESSAGES);
// create a new single bed and verify
facilityLocation.enterBedName(bedName);
facilityLocation.enterBedDescription(bedDescrption);
facilityLocation.selectBedType(bedType);
assetPage.clickassetupdatebutton();
// Verify the bed creation
facilityLocation.verifyBedNameBadge(bedName);
facilityLocation.verifyBedBadge(bedType);
facilityLocation.verifyBedBadge(bedStatus);
// edit the created bed
facilityLocation.clickEditBedButton();
facilityLocation.enterBedName(bedModifiedName);
facilityLocation.enterBedDescription(bedModifiedDescrption);
facilityLocation.selectBedType(bedModifiedType);
assetPage.clickassetupdatebutton();
// verify the modification
facilityLocation.verifyBedNameBadge(bedModifiedName);
facilityLocation.verifyBedBadge(bedModifiedType);
facilityLocation.verifyBedBadge(bedStatus);
});

afterEach(() => {
cy.saveLocalStorage();
});
Expand Down
4 changes: 4 additions & 0 deletions cypress/pageobject/Facility/FacilityCreation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,10 @@ class FacilityPage {
cy.get("[data-testid='District']").should("contain", expectedText);
}

verifyLocalBodyBadgeContent(expectedText: string) {
cy.get("[data-testid='Local Body']").should("contain", expectedText);
}

verifyFacilityTypeBadgeContent(expectedText: string) {
cy.get("[data-testid='Facility type']").should("contain", expectedText);
}
Expand Down
43 changes: 43 additions & 0 deletions cypress/pageobject/Facility/FacilityHome.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,49 @@ class FacilityHome {
cy.intercept("GET", `**/api/v1/facility/?csv${queryParam}`).as(alias);
}

clickViewCnsButton() {
cy.get("#view-cns-button").first().click();
}

verifyCnsUrl() {
cy.url().should("include", "/cns");
}

clickFacilityNotifyButton() {
cy.get("#facility-notify").first().click();
}

verifyFacilityDetailsUrl() {
cy.url().should("match", /\/facility\/[\w-]+/);
}

verifyPatientListVisibility() {
cy.get("#patient-name-list").scrollIntoView();
cy.get("#patient-name-list").should("be.visible");
}

verifyPatientListUrl() {
cy.url().should("match", /\/patients\?facility=.+/);
}

verifyOccupancyBadgeVisibility() {
cy.get("#occupany-badge").should("be.visible");
}

verifyAndCloseNotifyModal() {
cy.get("#cancel").should("be.visible");
cy.get("#cancel").click();
}

navigateBack() {
cy.go(-1);
}

clickViewFacilityDetails() {
cy.get("#facility-details").should("be.visible");
cy.get("#facility-details").first().click();
}

verifyDownload(alias: string) {
cy.wait(`@${alias}`).its("response.statusCode").should("eq", 200);
}
Expand Down
6 changes: 5 additions & 1 deletion cypress/pageobject/Facility/FacilityLocation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ class FacilityLocation {
cy.get("#location-type").contains(type);
}

verifyNotification(message: string) {
cy.get(".pnotify-container").should("contain", message).and("be.visible");
}

verifyLocationDescription(description: string) {
cy.get("#view-location-description").contains(description);
}
Expand All @@ -49,7 +53,7 @@ class FacilityLocation {
}

enterBedName(name: string) {
cy.get("#bed-name").clear().click().type(name);
cy.get("#bed-name").click().clear().click().type(name);
}

enterBedDescription(description: string) {
Expand Down
1 change: 1 addition & 0 deletions cypress/pageobject/Users/ManageUserPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ export class ManageUserPage {
}

clickFacilityPatients() {
cy.get("#facility-patients").should("be.visible");
cy.get("#facility-patients").click();
}

Expand Down
2 changes: 2 additions & 0 deletions src/Components/Facility/FacilityCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export const FacilityCard = (props: { facility: any; userType: any }) => {
{facility.name}
</Link>
<ButtonV2
id="view-cns-button"
href={`/facility/${facility.id}/cns`}
border
ghost
Expand Down Expand Up @@ -160,6 +161,7 @@ export const FacilityCard = (props: { facility: any; userType: any }) => {
<div className="flex w-full flex-wrap justify-between gap-2 py-2">
<div className="flex flex-wrap gap-2">
<div
id="occupany-badge"
className={`tooltip button-size-default ml-auto flex w-fit items-center justify-center rounded-md px-2 ${
facility.patient_count / facility.bed_count > 0.85
? "button-danger-border bg-red-500"
Expand Down

0 comments on commit 77366d0

Please sign in to comment.