Skip to content

Commit 472bca0

Browse files
Automation of hdpi 5244 (#1925)
Co-authored-by: SameenaHMCTS <sameena.javeed@hmcts.net>
1 parent 4043601 commit 472bca0

6 files changed

Lines changed: 82 additions & 4 deletions

File tree

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const cancelPayment = {
22
mainHeader: `Your payment has been cancelled`,
3-
continueButton: `Continue`
3+
continueButton: `Continue`,
4+
returnServiceReqLink: `Return to service request`
45
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export const history = {
2+
title: `Create a case - HM Courts & Tribunals Service - GOV.UK`,
3+
endStateTableHeader: `End state`,
4+
pendingCaseIssuedTableHeader: `Pending Case Issued`,
5+
caseIssuedTableHeader: `Case Issued`
6+
}

src/e2eTest/data/page-data/serviceRequest.page.data.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,9 @@ export const serviceRequest = {
1212
pbaReferenceInputText: `UniqueCaseIdentifier-Automation`,
1313
continueButton: `Continue`,
1414
confirmPaymentButton: `Confirm payment`,
15-
paymentSuccessMainHeader: `Payment successful`
15+
paymentSuccessMainHeader: `Payment successful`,
16+
notPaidStatus: `Not paid`,
17+
paidStatus: `Paid`,
18+
returnToServiceRequestLink: `Return to service request`,
19+
viewServiceRequestsLink: `View service requests`
1620
}

src/e2eTest/tests/CommonComponent/feeAndPay.spec.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import { expect, test } from '@utils/test-fixtures';
88
import { createCaseApiData, submitCaseApiData } from '@data/api-data';
99
import { getCaseTypeId } from '@utils/common/caseType.utils';
1010
import { VERY_LONG_TIMEOUT } from 'playwright.config';
11-
import { cancelPayment, confirmYourPayment, enterPaymentDetails, serviceRequest } from '@data/page-data';
11+
import { cancelPayment, caseSummary, confirmYourPayment, enterPaymentDetails, serviceRequest } from '@data/page-data';
12+
import { history } from '@data/page-data/history.page.data';
1213

1314
test.beforeEach(async ({ page }) => {
1415
initializeExecutor(page);
@@ -42,6 +43,14 @@ test.describe('[Common Component Fee And Pay] @nightly @CC @caseFlags' , async (
4243
confirmButton: serviceRequest.confirmPaymentButton,
4344
});
4445
await performValidation('mainHeader', serviceRequest.paymentSuccessMainHeader);
46+
await performAction('verifyStatusInHistoryAndSummaryTab', {
47+
serviceReqLink: serviceRequest.viewServiceRequestsLink,
48+
serviceReqTab: caseSummary.servieRequestTab,
49+
historyTab: caseSummary.HistoryTab,
50+
status: serviceRequest.paidStatus,
51+
endState: history.endStateTableHeader,
52+
historyStatus: history.caseIssuedTableHeader
53+
});
4554
});
4655

4756
test('Fee And Pay - Pay by Card @nightly @feeAndPay', async () => {
@@ -68,6 +77,14 @@ test.describe('[Common Component Fee And Pay] @nightly @CC @caseFlags' , async (
6877
await performValidation('mainHeader', confirmYourPayment.mainHeader);
6978
await performAction('clickButton', confirmYourPayment.confirmButton);
7079
await performValidation('mainHeader', serviceRequest.paymentSuccessMainHeader);
80+
await performAction('verifyStatusInHistoryAndSummaryTab', {
81+
serviceReqLink: serviceRequest.returnToServiceRequestLink,
82+
serviceReqTab: caseSummary.servieRequestTab,
83+
historyTab: caseSummary.HistoryTab,
84+
status: serviceRequest.paidStatus,
85+
endState: history.endStateTableHeader,
86+
historyStatus: history.caseIssuedTableHeader
87+
});
7188
});
7289

7390
test('Fee And Pay - Cancel Payment from You Card Details Page @nightly @feeAndPay', async () => {
@@ -80,6 +97,15 @@ test.describe('[Common Component Fee And Pay] @nightly @CC @caseFlags' , async (
8097
await performValidation('mainHeader', enterPaymentDetails.mainHeader);
8198
await performAction('clickButton', enterPaymentDetails.cancelPaymentButton);
8299
await performValidation('mainHeader', cancelPayment.mainHeader);
100+
await performAction('clickButton', cancelPayment.continueButton);
101+
await performAction('verifyStatusInHistoryAndSummaryTab', {
102+
serviceReqLink: cancelPayment.returnServiceReqLink,
103+
serviceReqTab: caseSummary.servieRequestTab,
104+
historyTab: caseSummary.HistoryTab,
105+
status: serviceRequest.notPaidStatus,
106+
endState: history.endStateTableHeader,
107+
historyStatus: history.pendingCaseIssuedTableHeader
108+
});
83109
});
84110

85111
test('Fee And Pay - Cancel Payment from Confirm Card Details Page @nightly @feeAndPay', async () => {
@@ -106,5 +132,14 @@ test.describe('[Common Component Fee And Pay] @nightly @CC @caseFlags' , async (
106132
await performValidation('mainHeader', confirmYourPayment.mainHeader);
107133
await performAction('clickButton', confirmYourPayment.cancelPaymentButton);
108134
await performValidation('mainHeader', cancelPayment.mainHeader);
135+
await performAction('clickButton', cancelPayment.continueButton);
136+
await performAction('verifyStatusInHistoryAndSummaryTab', {
137+
serviceReqLink: cancelPayment.returnServiceReqLink,
138+
serviceReqTab: caseSummary.servieRequestTab,
139+
historyTab: caseSummary.HistoryTab,
140+
status: serviceRequest.notPaidStatus,
141+
endState: history.endStateTableHeader,
142+
historyStatus: history.pendingCaseIssuedTableHeader
143+
});
109144
});
110145
});

src/e2eTest/utils/actions/custom-actions/commonComponent/feeAndPay.action.ts

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export class FeeAndPayAction implements IAction {
1111
['selectPaymentByCard', () => this.selectPaymentByCard(fieldName as actionRecord, page)],
1212
['enterPaymentDetails', () => this.enterPaymentDetails(fieldName as actionRecord)],
1313
['clickPayNowLink', () => this.clickPayNowLink(fieldName as actionRecord, page)],
14+
['verifyStatusInHistoryAndSummaryTab', () => this.verifyStatusInHistoryAndSummaryTab(fieldName as actionRecord, page)],
1415
]);
1516
const actionToPerform = actionsMap.get(action);
1617
if (!actionToPerform) throw new Error(`No action found for '${action}'`);
@@ -96,4 +97,34 @@ export class FeeAndPayAction implements IAction {
9697
`${payNowText} link was not visible after maximum retries`
9798
);
9899
}
99-
}
100+
101+
private async verifyStatusInHistoryAndSummaryTab(statusDetails: actionRecord, page: Page) {
102+
//Verify status only in AAT env as its NOT working in preview
103+
const currentUrl = process.env.MANAGE_CASE_BASE_URL;
104+
console.log(process.env.MANAGE_CASE_BASE_URL);
105+
if (currentUrl && currentUrl.includes('api-pr')) {
106+
console.log('Verification steps skipped as this is NOT working in PREVIEW env. POFCC-229');
107+
} else {
108+
console.log('Verifying payment status');
109+
await performAction('clickButton', statusDetails.serviceReqLink);
110+
await performAction('clickTab', statusDetails.historyTab);
111+
//Implementing retry login because POFCC-238
112+
const maxRetries = 10;
113+
let isStatusUpdated = false;
114+
for (let retryCount = 0; retryCount < maxRetries; retryCount++) {
115+
await page.reload();
116+
const endStateElement = page.locator(`th:has-text("${String(statusDetails.endState)}") ~ td span.text-16`);
117+
const actualText = (await endStateElement.textContent())?.trim();
118+
119+
if (actualText === String(statusDetails.historyStatus)) {
120+
isStatusUpdated = true;
121+
break;
122+
}
123+
await page.waitForTimeout(3000);
124+
}
125+
await performAction('clickTab', statusDetails.serviceReqTab);
126+
const summaryStatusElement = page.locator(`text=${String(statusDetails.status)}`);
127+
await expect(summaryStatusElement).toBeVisible();
128+
}
129+
}
130+
}

src/e2eTest/utils/registry/action.registry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export class ActionRegistry {
121121
['selectPaymentTypePBA', new FeeAndPayAction()],
122122
['selectPaymentByCard', new FeeAndPayAction()],
123123
['enterPaymentDetails', new FeeAndPayAction()],
124+
['verifyStatusInHistoryAndSummaryTab', new FeeAndPayAction()],
124125
['clickPayNowLink', new FeeAndPayAction()],
125126
['whereShouldThisFlagBeAdded', new CaseFlagAction()],
126127
['selectFlagType', new CaseFlagAction()],

0 commit comments

Comments
 (0)