-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Cypress Test | Create Partial Investigation Log Update #9034
Changes from 1 commit
a5a3c44
6e6a24b
4ce556c
7017dc9
fc3eccd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import { PatientPage } from "pageobject/Patient/PatientCreation"; | ||
import PatientInvestigation from "pageobject/Patient/PatientInvestigation"; | ||
|
||
import LoginPage from "../../pageobject/Login/LoginPage"; | ||
|
||
describe("Patient Investigation Creation from Patient consultation page", () => { | ||
const loginPage = new LoginPage(); | ||
const patientPage = new PatientPage(); | ||
const patientInvestigation = new PatientInvestigation(); | ||
const patientName = "Dummy Patient 12"; | ||
|
||
before(() => { | ||
loginPage.loginAsDistrictAdmin(); | ||
cy.saveLocalStorage(); | ||
}); | ||
|
||
beforeEach(() => { | ||
cy.restoreLocalStorage(); | ||
cy.clearLocalStorage(/filters--.+/); | ||
cy.awaitUrl("/patients"); | ||
}); | ||
|
||
it("Create a investigation for a patient and verify its reflection", () => { | ||
patientPage.visitPatient(patientName); | ||
patientInvestigation.clickInvestigationTab(); | ||
patientInvestigation.clickLogLabResults(); | ||
cy.clickAndMultiSelectOption("#investigations", [ | ||
"Haematology", | ||
"Urine Test", | ||
]); | ||
cy.submitButton("Save Investigation"); | ||
cy.verifyNotification("Please Enter at least one value"); | ||
}); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Enhance test coverage and add assertions. The current test only covers the error path. Consider adding:
Example additional test: it("should successfully create and save an investigation", () => {
patientPage.visitPatient(patientName);
patientInvestigation.clickInvestigationTab();
patientInvestigation.clickLogLabResults();
// Select investigations
cy.clickAndMultiSelectOption("#investigations", ["Haematology"]);
// Fill required values
cy.get('[data-testid="haemoglobin-input"]').type("14.5");
// Save and verify
cy.submitButton("Save Investigation");
cy.verifyNotification("Investigation saved successfully");
// Verify investigation appears in the list
cy.get('[data-testid="investigations-list"]')
.should("contain", "Haematology")
.and("contain", "14.5");
}); |
||
|
||
afterEach(() => { | ||
cy.saveLocalStorage(); | ||
}); | ||
Comment on lines
+37
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add proper test data cleanup. The afterEach hook only handles localStorage. Consider adding cleanup steps to ensure complete test isolation:
afterEach(() => {
cy.saveLocalStorage();
+ // Clean up created investigations
+ cy.task('dbCleanup', {
+ collection: 'investigations',
+ filter: { patientName }
+ });
});
|
||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Improve test data management and suite description.
The hardcoded patient name (
"Dummy Patient 12"
) should be moved to a test data fixture for better maintainability. Also, consider making the test suite description more specific to the functionality being tested.