From 89465296081c508399b9372e8a9698bfd86ab0bb Mon Sep 17 00:00:00 2001
From: Mohammed Nihal <57055998+nihal467@users.noreply.github.com>
Date: Wed, 20 Sep 2023 03:45:29 +0530
Subject: [PATCH] Asset page redirection (#6308)
---
cypress/e2e/assets_spec/assets_manage.cy.ts | 24 +++++++++++++
.../pageobject/Facility/FacilityCreation.ts | 35 +++++++++++++++++++
src/Components/Facility/FacilityHome.tsx | 3 ++
3 files changed, 62 insertions(+)
diff --git a/cypress/e2e/assets_spec/assets_manage.cy.ts b/cypress/e2e/assets_spec/assets_manage.cy.ts
index f27fd302a0c..1f89facd0a3 100644
--- a/cypress/e2e/assets_spec/assets_manage.cy.ts
+++ b/cypress/e2e/assets_spec/assets_manage.cy.ts
@@ -1,10 +1,17 @@
import { afterEach, before, beforeEach, cy, describe, it } from "local-cypress";
import { AssetPage } from "../../pageobject/Asset/AssetCreation";
import LoginPage from "../../pageobject/Login/LoginPage";
+import { AssetSearchPage } from "../../pageobject/Asset/AssetSearch";
+import FacilityPage from "../../pageobject/Facility/FacilityCreation";
+import { AssetFilters } from "../../pageobject/Asset/AssetFilters";
describe("Asset", () => {
const assetPage = new AssetPage();
const loginPage = new LoginPage();
+ const facilityPage = new FacilityPage();
+ const assetSearchPage = new AssetSearchPage();
+ const assetFilters = new AssetFilters();
+ const fillFacilityName = "Dummy Facility 1";
before(() => {
loginPage.loginAsDisctrictAdmin();
@@ -23,6 +30,23 @@ describe("Asset", () => {
assetPage.verifyDeleteStatus();
});
+ it("Verify Facility Asset Page Redirection", () => {
+ cy.visit("/facility");
+ assetSearchPage.typeSearchKeyword(fillFacilityName);
+ assetSearchPage.pressEnter();
+ facilityPage.verifyFacilityBadgeContent(fillFacilityName);
+ facilityPage.visitAlreadyCreatedFacility();
+ facilityPage.clickManageFacilityDropdown();
+ facilityPage.clickCreateAssetFacilityOption();
+ facilityPage.verifyfacilitycreateassetredirection();
+ facilityPage.verifyassetfacilitybackredirection();
+ facilityPage.clickManageFacilityDropdown();
+ facilityPage.clickviewAssetFacilityOption();
+ facilityPage.verifyfacilityviewassetredirection();
+ assetFilters.assertFacilityText(fillFacilityName);
+ facilityPage.verifyassetfacilitybackredirection();
+ });
+
afterEach(() => {
cy.saveLocalStorage();
});
diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts
index ef4e65781e0..0c12d4655fd 100644
--- a/cypress/pageobject/Facility/FacilityCreation.ts
+++ b/cypress/pageobject/Facility/FacilityCreation.ts
@@ -120,6 +120,14 @@ class FacilityPage {
cy.get("#configure-facility").contains("Configure Facility").click();
}
+ clickCreateAssetFacilityOption() {
+ cy.get("#create-assets").contains("Create Asset").click();
+ }
+
+ clickviewAssetFacilityOption() {
+ cy.get("#view-assets").contains("View Assets").click();
+ }
+
clickInventoryManagementOption() {
cy.get("#inventory-management", { timeout: 10000 }).should("be.visible");
cy.get("#inventory-management").click();
@@ -175,6 +183,33 @@ class FacilityPage {
cy.wait("@getFacilities").its("response.statusCode").should("eq", 200);
}
+ verifyFacilityBadgeContent(expectedText: string) {
+ cy.get("[data-testid='Facility/District Name']").should(
+ "contain",
+ expectedText
+ );
+ }
+
+ verifyfacilitycreateassetredirection() {
+ cy.intercept("GET", "**/api/v1/facility/**").as("getNewAssets");
+ cy.url().should("include", "/assets/new");
+ cy.wait("@getNewAssets").its("response.statusCode").should("eq", 200);
+ }
+
+ verifyassetfacilitybackredirection() {
+ cy.intercept("GET", "**/api/v1/facility/**").as("getManagePage");
+ cy.go("back");
+ cy.wait("@getManagePage").its("response.statusCode").should("eq", 200);
+ cy.get("#manage-facility-dropdown").scrollIntoView();
+ cy.get("#manage-facility-dropdown").should("exist");
+ }
+
+ verifyfacilityviewassetredirection() {
+ cy.intercept("GET", "**api/v1/getallfacilities/**").as("getViewAssets");
+ cy.url().should("include", "/assets?facility=");
+ cy.wait("@getViewAssets").its("response.statusCode").should("eq", 200);
+ }
+
clickManageInventory() {
cy.contains("Manage Inventory").click();
}
diff --git a/src/Components/Facility/FacilityHome.tsx b/src/Components/Facility/FacilityHome.tsx
index 81e7fa4906f..15317b1b56c 100644
--- a/src/Components/Facility/FacilityHome.tsx
+++ b/src/Components/Facility/FacilityHome.tsx
@@ -575,6 +575,7 @@ export const FacilityHome = (props: any) => {
Resource Request
navigate(`/facility/${facilityId}/assets/new`)}
authorizeFor={NonReadOnlyUsers}
icon={}
@@ -582,12 +583,14 @@ export const FacilityHome = (props: any) => {
Create Asset
navigate(`/assets?facility=${facilityId}`)}
icon={}
>
View Assets
navigate(`/facility/${facilityId}/users`)}
icon={}
>