Skip to content
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

feat: [DHIS2-18250] Breadcrumb for event & enrollment pages #3849

Merged
merged 14 commits into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Feature: User interacts with the Enrollment New Event Workspace

Scenario: User should be asked to create new event after completing a stage and choose to cancel
Given you land on the enrollment new event page by having typed #/enrollmentEventNew?enrollmentId=zRfAPUpjoG3&orgUnitId=DiszpKrYNg8&programId=M3xtLkYBlKI&stageId=CWaAcQYKVpq&teiId=S3JjTA4QMNe
Then you see the following Enrollment: New Event
Then you see the new event form
And you see the widget header Foci investigation & classification
And you type 2022-01-01 in the input number 0
And you type x in the input number 20
Expand All @@ -62,7 +62,7 @@ Feature: User interacts with the Enrollment New Event Workspace

Scenario: User should be asked to create new event after completing a stage and choose to continue
Given you land on the enrollment new event page by having typed #/enrollmentEventNew?enrollmentId=zRfAPUpjoG3&orgUnitId=DiszpKrYNg8&programId=M3xtLkYBlKI&stageId=CWaAcQYKVpq&teiId=S3JjTA4QMNe
Then you see the following Enrollment: New Event
Then you see the new event form
And you see the widget header Foci investigation & classification
And you type 2022-01-01 in the input number 0
And you type x in the input number 20
Expand All @@ -74,7 +74,7 @@ Feature: User interacts with the Enrollment New Event Workspace

Scenario: User is able to schedule an event with a note
Given you land on the enrollment new event page by having typed /#/enrollmentEventNew?enrollmentId=qcFFRp7DpcX&orgUnitId=DiszpKrYNg8&programId=WSGAb5XwJ3Y&stageId=edqlbukwRfQ&teiId=erqa3phUfpI
And you see the following Enrollment: New Event
And you see the new event form
And you select the schedule tab
When you add a note to the event
And the events saves successfully
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Feature: User interacts with Enrollment Add event page
Scenario: The user can land on the enrollment add event page.
Given you land on the enrollment add event page by having typed /#/enrollmentEventNew?programId=IpHINAT79UW&orgUnitId=DiszpKrYNg8&teiId=tIJu6iqQxNV&enrollmentId=CCBLMntFuzb&stageId=A03MvHHogjR
Then you see the following Enrollment: New Event
Then you see the new event form
And you see the widget header Birth
And you see the following Report date
And you see the add event form details
6 changes: 5 additions & 1 deletion cypress/e2e/EnrollmentAddEventPage/sharedSteps.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Then, defineStep as And } from '@badeball/cypress-cucumber-preprocessor';
import { defineStep as And, Then, When } from '@badeball/cypress-cucumber-preprocessor';

Then(/^you see the following (.*)$/, (message) => {
cy.contains(message);
Expand All @@ -12,3 +12,7 @@ And(/^you see the widget header (.*)$/, (name) => {
cy.contains(name).should('exist');
});
});

When('you see the new event form', () => {
cy.get('[data-test="new-enrollment-event-form"]').should('exist');
});
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ And the user see the following text: Yes

Scenario: The user can enter and exit the edit mode.
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?orgUnitId=DiszpKrYNg8&eventId=V1CerIi3sdL
And the user see the following text: Enrollment: View Event
And the view enrollment event form is in view mode
And the user see the following text: Apgar Score
When the user clicks on the edit button
Then the user see the following text: Enrollment: Edit Event
Then the view enrollment event form is in edit mode
When the user clicks on the cancel button
And the user see the following text: Enrollment: View Event
And the view enrollment event form is in view mode

Scenario: The tracker program rules are triggered correctly for the Child Program.
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?orgUnitId=DiszpKrYNg8&eventId=V1CerIi3sdL
Expand All @@ -53,58 +53,58 @@ Then the user don't see the following text: Low-dose acetylsalicylic acid given

Scenario: User can modify and save the data in the form
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?orgUnitId=DiszpKrYNg8&eventId=V1CerIi3sdL
Then the user see the following text: Enrollment: View Event
Then the view enrollment event form is in view mode
And the apgar score is 11
When the user clicks on the edit button
And the user set the apgar score to 5
And the user clicks on the save button
Then you are redirected to the enrollment dashboard
And you open the Birth stage event
Then the user see the following text: Enrollment: View Event
Then the view enrollment event form is in view mode
And the user see the following text: 5
When the user clicks on the edit button
And the user set the apgar score to 11
And the user clicks on the save button
Then you are redirected to the enrollment dashboard
And you open the Birth stage event
Then the user see the following text: Enrollment: View Event
Then the view enrollment event form is in view mode
And the user see the following text: 11

Scenario: User goes directly to Edit mode for scheduled events
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?eventId=RIrfCcEP8Uu&orgUnitId=DiszpKrYNg8
Then the user see the following text: Enrollment: Edit Event
Then the view enrollment event form is in edit mode
And the user see the following text: Infant Feeding
When the user clicks on the cancel button
Then the user see the following text: Enrollment Dashboard
Then the user is navigated to the enrollment dashboard

Scenario: User can update schedule date for a scheduled event
Scenario: User can update schedule date for a scheduled event
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?eventId=RIrfCcEP8Uu&orgUnitId=DiszpKrYNg8
Then the user see the following text: Enrollment: Edit Event
Then the view enrollment event form is in edit mode
And the user see the following text: Infant Feeding
When the user clicks switch tab to Schedule
And the user selects another schedule date
And the user clicks on the schedule button on widget-enrollment-event
Then the user see the following text: Enrollment Dashboard
Then the user is navigated to the enrollment dashboard

Scenario: User can update schedule date if Hide due date is enabled
Given you land on the enrollment event page with selected Focus area by having typed /#/enrollmentEventNew?enrollmentId=V8uPJuhvlL7&orgUnitId=DiszpKrYNg8&programId=M3xtLkYBlKI&stageId=uvMKOn1oWvd&tab=SCHEDULE&teiId=dNpxRu1mWG5
Then the user see the following text: Enrollment: New Event
Then the add event form is displayed
And the user see the following text: Foci response
And the user see the schedule date and info box
And the user clicks on the schedule button on add-event-enrollment-page-content
Then the user see the following text: Enrollment Dashboard
Then the user is navigated to the enrollment dashboard

Scenario: User can see disabled scheduled date for active event
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?eventId=FV4JCI73wO2&orgUnitId=DiszpKrYNg8
Then the user see the following text: Enrollment: View Event
Then the view enrollment event form is in view mode
When the user clicks on the edit button
Then the user see the following text: Enrollment: Edit Event
Then the view enrollment event form is in edit mode
Then the user see the schedule date field with tooltip: Scheduled date cannot be changed for Active events

@user:trackerAutoTestRestricted
Scenario: The user cannot enter edit mode for completed events
Given you land on the enrollment event page with selected Person by having typed /#/enrollmentEventEdit?eventId=nUVwTLuQ6FT&orgUnitId=DiszpKrYNg8
And the user see the following text: Enrollment: View Event
And the view enrollment event form is in view mode
Then the edit button should be disabled

Scenario: User can edit the event and complete the enrollment
Expand All @@ -113,4 +113,4 @@ Scenario: User can edit the event and complete the enrollment
And the user clicks on the edit button
And the user completes the event
And the user completes the enrollment
Then the user sees the enrollment status and recently edited event in Case outcome event status is completed
Then the user sees the enrollment status and recently edited event in Case outcome event status is completed
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Given, When, Then, defineStep as And } from '@badeball/cypress-cucumber-preprocessor';
import { defineStep as And, Given, Then, When } from '@badeball/cypress-cucumber-preprocessor';
import { getCurrentYear } from '../../../support/date';

const changeEnrollmentAndEventsStatus = () => (
Expand Down Expand Up @@ -212,3 +212,15 @@ Then('the edit button should be disabled', () => {
.eq(1)
.should('be.disabled');
});

And('the add event form is displayed', () => {
cy.get('[data-test="add-event-enrollment-page-content"]').should('exist');
});

And('the user is navigated to the enrollment dashboard', () => {
cy.get('[data-test="enrollment-overview-page"]').should('exist');
});

And(/^the view enrollment event form is in (.*) mode$/, (mode) => {
cy.get(`[data-test="widget-enrollment-event-${mode}"]`).should('exist');
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ Feature: User interacts with Enrollment event page

Scenario: The user can land on the enrollment event page.
Given you land on the enrollment event page by having typed #/enrollmentEventEdit?orgUnitId=DiszpKrYNg8&eventId=O7IACPx40nQ
Then you see the following Enrollment: View Event
Then the view enrollment event form is in view mode
And you see the following Baby Postnatal

Scenario: User can navigate back and forward between the enrollment event edit page and the enrollment page
Scenario: User can navigate back and forward between the enrollment event edit page and the enrollment page
Given you open the enrollment page which has multiple events and stages
Then you see the following Enrollment Dashboard
Then the user is navigated to the enrollment dashboard
And the widgets are done rendering
And the program stages should be displayed
When the user clicks the first second antenatal care visit event
Then you see the following Enrollment: View Event
Then the view enrollment event form is in view mode
And you see the following antenatal care visit
And you see the following No ARV medication plan
When the user clicks the "Back to all stages and events" button
Then you see the following Enrollment Dashboard
And the program stages should be displayed
Then the user is navigated to the enrollment dashboard
And the program stages should be displayed
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Given, When, Then, defineStep as And } from '@badeball/cypress-cucumber-preprocessor';
import { defineStep as And, Given, Then, When } from '@badeball/cypress-cucumber-preprocessor';

Given(/^you land on the enrollment event page by having typed (.*)$/, (url) => {
cy.visit(url);
Expand Down Expand Up @@ -39,3 +39,11 @@ Then('the program stages should be displayed', () => {
cy.contains('Care at birth').should('exist');
});
});

And('the user is navigated to the enrollment dashboard', () => {
cy.get('[data-test="enrollment-overview-page"]').should('exist');
});

And(/^the view enrollment event form is in (.*) mode$/, (mode) => {
cy.get(`[data-test="widget-enrollment-event-${mode}"]`).should('exist');
});
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { Given, When, Then, defineStep as And } from '@badeball/cypress-cucumber-preprocessor';
import { defineStep as And, Given, Then, When } from '@badeball/cypress-cucumber-preprocessor';

Given('you are on an enrollment page', () => {
cy.visit('/#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8');
cy.get('[data-test="enrollment-page-content"]')
.contains('Enrollment Dashboard');
cy.get('[data-test="enrollment-overview-page"]');
});

And('you select the Inpatient morbidity program', () => {
Expand Down Expand Up @@ -90,8 +89,7 @@ Then(/^you should be redirect to (.*)$/, (expectedUrl) => {

Given('you land on the enrollment page by having typed only the enrollmentId in the url', () => {
cy.visit('/#/enrollment?enrollmentId=gPDueU02tn8');
cy.get('[data-test="enrollment-page-content"]')
.contains('Enrollment Dashboard');
cy.get('[data-test="enrollment-overview-page"]');
cy.contains('[data-test="scope-selector"]', 'Carlos Cruz');
cy.contains('[data-test="scope-selector"]', 'Taninahun (Malen) CHP');
cy.contains('1 event');
Expand Down Expand Up @@ -119,8 +117,7 @@ When('you reset the org unit selection', () => {

Then('you see the enrollment page but there is no org unit id in the url', () => {
cy.url().should('not.include', 'orgUnitId');
cy.get('[data-test="enrollment-page-content"]')
.contains('Enrollment Dashboard');
cy.get('[data-test="enrollment-overview-page"]');
});

When('you reset the enrollment selection', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
import { Given, When, Then } from '@badeball/cypress-cucumber-preprocessor';
import { Given, Then, When } from '@badeball/cypress-cucumber-preprocessor';

Given(/^you open the enrollment page by typing (.*)$/, url =>
cy.visit(url),
);

Given('you are on an enrollment page with stage available', () => {
cy.visit('/#/enrollment?programId=ur1Edk5Oe2n&orgUnitId=UgYg0YW7ZIh&teiId=zmgVvEZ91Kg&enrollmentId=xRnBV5aJDeF');
cy.get('[data-test="enrollment-page-content"]')
.contains('Enrollment Dashboard');
cy.get('[data-test="enrollment-overview-page"]');
});

Given('you are on an enrollment page with no stage available', () => {
cy.visit('/#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8');
cy.get('[data-test="enrollment-page-content"]')
.contains('Enrollment Dashboard');
cy.get('[data-test="enrollment-overview-page"]');
});

When(/^you click the (.*) event-button/, (mode) => {
Expand Down
4 changes: 4 additions & 0 deletions cypress/e2e/EnrollmentPage/sharedSteps.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@ Given('you open the enrollment page', () => {
Given('you open the enrollment page which has multiples events and stages', () => {
cy.visit('#/enrollment?enrollmentId=ek4WWAgXX5i');
});

Given('you are on the enrollment dashboard', () => {
cy.url().should('include', '/#/enrollment?');
});
18 changes: 10 additions & 8 deletions cypress/e2e/ScopeSelector/ScopeSelector.feature
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ Feature: User uses the ScopeSelector to navigate

Examples:
| url | state | message |
| /#/enrollment?enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?orgUnitId=UgYg0YW7ZIh&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?programId=IpHINAT79UW&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?programId=IpHINAT79UW&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment Dashboard |
| /#/enrollment?enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?orgUnitId=UgYg0YW7ZIh&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?programId=IpHINAT79UW&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?programId=IpHINAT79UW&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?programId=IpHINAT79UW&orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ&enrollmentId=gPDueU02tn8 | all | Enrollment dashboard |
| /#/enrollment?orgUnitId=UgYg0YW7ZIh&teiId=fhFQhO0xILJ | teiAndOrgUnit | Choose a program to add new or see existing enrollments for Carlos Cruz |
| /#/enrollment?programId=IpHINAT79UW&teiId=fhFQhO0xILJ | teiAndChildProgram | Choose an enrollment to view the dashboard. |
| /#/enrollment?programId=qDkgAbB5Jlk&teiId=fhFQhO0xILJ | teiAndMalariaProgram | Carlos Cruz is a person and cannot be enrolled in the Malaria case diagnosis, treatment and investigation. Choose another program that allows person enrollment. Enroll a new malaria entity in this program.|
Expand Down Expand Up @@ -184,6 +184,8 @@ Feature: User uses the ScopeSelector to navigate
When you reset the program selection
Then you see message explaining you need to select a program

# DHIS2-18326
@skip
Scenario: Enrollment event edit page > resetting the org unit
Given you land on a enrollment page domain by having typed /#/enrollmentEventEdit?orgUnitId=UgYg0YW7ZIh&eventId=lQQyjR73hHk
When you reset the org unit selection
Expand Down
Loading
Loading