Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:I-TECH-UW/OpenELIS-Global-2 into…
Browse files Browse the repository at this point in the history
… develop
  • Loading branch information
CalebSLane committed Aug 22, 2024
2 parents f2048dc + cd8e11a commit cf870fe
Show file tree
Hide file tree
Showing 28 changed files with 1,343 additions and 324 deletions.
1 change: 1 addition & 0 deletions frontend/cypress.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module.exports = defineConfig({
"cypress/e2e/nonConform.cy.js",
"cypress/e2e/modifyOrder.cy.js",
"cypress/e2e/batchOrderEntry.cy.js",
"cypress/e2e/dashboard.cy.js",
];
return config;
},
Expand Down
84 changes: 84 additions & 0 deletions frontend/cypress/e2e/dashboard.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import LoginPage from "../pages/LoginPage";

let homePage = null;
let loginPage = null;
let dashboard = null;

before("login", () => {
loginPage = new LoginPage();
loginPage.visit();
});

describe("Pathology Dashboard", function () {
it("User Visits Pathology Dashboard", function () {
homePage = loginPage.goToHomePage();
dashboard = homePage.goToPathologyDashboard();

dashboard.checkForHeader("Pathology");
});

it("User adds a new Pathology order", function () {
homePage.goToOrderPage();
dashboard.addOrder("Histopathology");
});
it("Check For Order", () => {
homePage.goToPathologyDashboard();
dashboard.checkForHeader("Pathology");

cy.fixture("DashBoard").then((order) => {
dashboard.validatePreStatus(order.labNo);
});
});

it("Change The Status of Order and save it", () => {
dashboard.changeStatus("Completed");
dashboard.enterDetails();
dashboard.saveOrder();
});

it("Validate the Status of Order", () => {
cy.fixture("DashBoard").then((order) => {
dashboard.validateOrderStatus(order.labNo, 4);
});
});
});

describe("ImmunoChemistry Dashboard", function () {
it("User Visits ImmunoChemistry Dashboard", function () {
homePage = loginPage.goToHomePage();
dashboard = homePage.goToImmunoChemistryDashboard();
dashboard.checkForHeader("Immunohistochemistry");

// cy.fixture("DashBoard").then((order) => {
// dashboard.validatePreStatus(order.labNo);

// });
});

it("User adds a new ImmunioChemistry order", function () {
homePage.goToOrderPage();
dashboard.addOrder("Immunohistochemistry");
});

it("Check For Order", () => {
homePage.goToImmunoChemistryDashboard();

dashboard.checkForHeader("Immunohistochemistry");

cy.fixture("DashBoard").then((order) => {
dashboard.validatePreStatus(order.labNo);
});
});

it("Change The Status of Order and save it", () => {
dashboard.changeStatus("Completed");
dashboard.selectPathologist("ELIS,Open");
dashboard.saveOrder();
});

it("Validate the Status of Order", () => {
cy.fixture("DashBoard").then((order) => {
dashboard.validateOrderStatus(order.labNo, 3);
});
});
});
82 changes: 82 additions & 0 deletions frontend/cypress/pages/DashBoard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
class DashBoardPage {
addOrder(Program) {
cy.fixture("Order").then((order) => {
cy.get(
":nth-child(2) > .cds--radio-button__label > .cds--radio-button__appearance",
).click();
cy.get("#local_search").click();
cy.get(
"tbody > :nth-child(1) > :nth-child(1) > .cds--radio-button-wrapper > .cds--radio-button__label > .cds--radio-button__appearance",
).click();
cy.get(".forwardButton").click();
cy.get("#additionalQuestionsSelect").select(Program);
cy.get(".forwardButton").click();
cy.get("#sampleId_0").select("Serum");
cy.get(
".testPanels > .cds--col > :nth-child(5) > .cds--checkbox-label",
).click();
cy.get(".forwardButton").click();
cy.get(
":nth-child(2) > :nth-child(1) > :nth-child(2) > .cds--link",
).click();
cy.wait(1000);

cy.get("#labNo")
.invoke("val")
.then((labNoValue) => {
if (labNoValue) {
const data = { labNo: labNoValue };
cy.writeFile("cypress/fixtures/DashBoard.json", data);
} else {
cy.log("labNoValue is empty or undefined");
}
});

cy.get("#siteName").type(order.siteName);
cy.get("#requesterFirstName").type(order.requester.firstName);
cy.get("#requesterLastName").type(order.requester.firstName);
cy.get(".forwardButton").should("be.visible").click();
});
}

checkForHeader(title) {
cy.get("section > h3").should("have.text", title);
}

enterDetails() {
cy.get(
":nth-child(14) > .gridBoundary > :nth-child(1) > .cds--form-item > .cds--text-area__wrapper > .cds--text-area",
).type("Test");
cy.get(
":nth-child(2) > .cds--form-item > .cds--text-area__wrapper > .cds--text-area",
).type("Test");
}

validateOrderStatus(orderNumber, childIndex) {
cy.get(":nth-child(2) > .cds--link").click();
cy.get(":nth-child(1) > .tile-value").should("have.text", "0");
cy.get(`:nth-child(${childIndex}) > .tile-value`).should("have.text", "1");
cy.get("#statusFilter").select("Completed");
cy.get("tbody > tr > :nth-child(4)").should("have.text", "John");
}

validatePreStatus(order) {
cy.get(":nth-child(1) > .tile-value").should("have.text", "1");
cy.get("tbody > tr > :nth-child(4)").should("have.text", "John");
cy.get("tbody > tr > :nth-child(6)").click();
}

saveOrder() {
cy.get("#pathology_save2").click();
}

changeStatus(status) {
cy.get("#status").select(status);
}

selectPathologist(pathologist) {
cy.get("#assignedPathologist").select(pathologist);
}
}

export default DashBoardPage;
15 changes: 15 additions & 0 deletions frontend/cypress/pages/HomePage.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import ModifyOrderPage from "./ModifyOrderPage";
import WorkPlan from "./WorkPlan";
import NonConform from "./NonConformPage";
import BatchOrderEntry from "./BatchOrderEntryPage";
import DashBoardPage from "./DashBoard";

class HomePage {
constructor() {}
Expand Down Expand Up @@ -97,6 +98,20 @@ class HomePage {
cy.get("#menu_non_conforming_corrective_actions_nav").click();
return new NonConform();
}

goToPathologyDashboard() {
this.openNavigationMenu();
cy.get("#menu_pathology_dropdown").click();
cy.get("#menu_pathologydashboard_nav").click();
return new DashBoardPage();
}

goToImmunoChemistryDashboard() {
this.openNavigationMenu();
cy.get("#menu_immunochem_dropdown").click();
cy.get("#menu_immunochemdashboard_nav").click();
return new DashBoardPage();
}
}

export default HomePage;
4 changes: 2 additions & 2 deletions frontend/public/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"short_name": "OpenELIS",
"name": "OpenELIS Global",
"icons": [
{
"src": "images/favicon-16x16.png",
Expand Down
85 changes: 85 additions & 0 deletions frontend/public/service-worker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
// Define a cache name for versioning your cache
const CACHE_NAME = "my-cache-v1";

// Cache assets during the install phase
self.addEventListener("install", (event) => {
console.log("[Service Worker] Install");
event.waitUntil(
caches
.open(CACHE_NAME)
.then((cache) => {
return cache.addAll(["/", "/index.html", "/styles.css"]);
})
.then(() => self.skipWaiting()), // Skip waiting to activate new service worker immediately
);
});

// Clean up old caches during the activate phase
self.addEventListener("activate", (event) => {
console.log("[Service Worker] Activate");
event.waitUntil(
caches
.keys()
.then((cacheNames) => {
return Promise.all(
cacheNames.map((cacheName) => {
if (cacheName !== CACHE_NAME) {
console.log("[Service Worker] Deleting old cache:", cacheName);
return caches.delete(cacheName);
}
}),
);
})
.then(() => self.clients.claim()), // Take control of all clients as soon as active
);
});

// Listen for push events and display notifications
self.addEventListener("push", (event) => {
console.log("[Service Worker] Push Received", event);
if (event.data) {
const data = event.data.json();
const notificationOptions = {
body: data.body || "Message Received from OpenELIS",
tag: data.external_id || "default-tag",
icon: "images/openelis_logo.png",
};

event.waitUntil(
self.registration.showNotification(
"OpenELIS Message Received",
notificationOptions,
),
);
}
});

// Notification click event listener
// self.addEventListener("notificationclick", (event) => {
// console.log('Notification clicked');
// event.notification.close(); // Close the notification popout

// event.waitUntil(
// clients.matchAll({ type: 'window', includeUncontrolled: true }).then((clientList) => {
// // Check if any client (tab or window) is already open
// for (let i = 0; i < clientList.length; i++) {
// const client = clientList[i];
// if (client.url === 'https://www.youtube.com/' && 'focus' in client) {
// return client.focus();
// }
// }

// // If no client is open, open a new window
// if (clients.openWindow) {
// return clients.openWindow('https://www.youtube.com/');
// }
// })
// );
// });

// Handle messages from clients
self.addEventListener("message", (event) => {
if (event.data && event.data.type === "SKIP_WAITING") {
self.skipWaiting();
}
});
2 changes: 1 addition & 1 deletion frontend/src/components/Style.css
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ button {
}

#mainHeader .cds--side-nav__link {
pointer-events: none
pointer-events: none;
}

@media screen and (max-width: 792px) {
Expand Down
Loading

0 comments on commit cf870fe

Please sign in to comment.