coronasafe/care_fe

View on GitHub
cypress/e2e/patient_spec/patient_encounter.cy.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { PatientEncounter } from "@/pageObject/Patients/PatientEncounter";
import { PatientPrescription } from "@/pageObject/Patients/PatientPrescription";
import { FacilityCreation } from "@/pageObject/facility/FacilityCreation";
import { generateRandomCharacter } from "@/utils/commonUtils";
import { viewPort } from "@/utils/viewPort";
 
const facilityCreation = new FacilityCreation();
const patientEncounter = new PatientEncounter();
const patientPrescription = new PatientPrescription();
 
describe("Patient Encounter Questionnaire", () => {
Similar blocks of code found in 7 locations. Consider refactoring.
beforeEach(() => {
cy.viewport(viewPort.desktop1080p.width, viewPort.desktop1080p.height);
cy.loginByApi("devnurse");
cy.visit("/");
});
 
it("verify the 500 character limit in input field", () => {
const characterMaxLimit = generateRandomCharacter({
charLimit: 510,
});
facilityCreation.selectFacility("GHC Payyanur");
patientEncounter
.navigateToEncounters()
.clickInProgressEncounterFilter()
.openFirstEncounterDetails()
.clickUpdateEncounter()
.addQuestionnaire("Question Type")
.fillQuestionnaire({
text: characterMaxLimit,
});
patientPrescription.clickSubmitQuestionnaire();
cy.verifyNotification("Failed to submit questionnaire");
cy.verifyErrorMessages([
{ label: "Text", message: "Text too long. Max allowed size is 500" },
]);
});
 
it("Create a new ABG questionnaire and verify the values", () => {
const abgValues = {
pco2: "120",
po2: "80",
};
facilityCreation.selectFacility("GHC Payyanur");
 
// Chain the methods instead of multiple separate calls
patientEncounter
.navigateToEncounters()
.clickInProgressEncounterFilter()
.openFirstEncounterDetails()
.clickUpdateEncounter()
.addQuestionnaire("Arterial Blood Gas")
.fillQuestionnaire(abgValues);
patientPrescription.submitQuestionnaire();
patientEncounter.verifyOverviewValues(Object.values(abgValues));
});
});