diff --git a/tests/playwright-tests/src/tests/e2e/epic4c-add-participant-tests/epic4c-10011-10012-testsuite.spec.ts b/tests/playwright-tests/src/tests/e2e/epic4c-add-participant-tests/epic4c-10011-10012-testsuite.spec.ts index b5149e8c5b..6f38ebd5ac 100644 --- a/tests/playwright-tests/src/tests/e2e/epic4c-add-participant-tests/epic4c-10011-10012-testsuite.spec.ts +++ b/tests/playwright-tests/src/tests/e2e/epic4c-add-participant-tests/epic4c-10011-10012-testsuite.spec.ts @@ -26,45 +26,81 @@ test.describe.serial('@DTOSS-3881-01 @e2e @epic4c- Cohort Manger subscribed the const familyName = participantData['inputParticipantRecord'].u_case_variable_data.surname_family_name; await test.step('Given Cohort manager receives data from ServiceNow and subscribed to PDS', async () => { - const response = await receiveParticipantViaServiceNow(request, payload); - await new Promise(res => setTimeout(res, 2000)); - const validators = composeValidators( - expectStatus(202) - ); - await validators(response); + let response; + let success = false; + + for (let i = 0; i < 10; i++) { + response = await receiveParticipantViaServiceNow(request, payload); + if (response.status === 202) { + success = true; + break; + } + console.log(`Waiting for succesful data receival from serviceNow... (${i + 1}/10)`); + await new Promise(res => setTimeout(res, 2000)); + } + if (!success) { + throw new Error('Cohort Manager receive data was unsuccessful after 10 retries (20 seconds).'); + } }); await test.step('Then NHSNumber, GivenName, FamilyName is written to Participant Demographic table', async () => { - const response = await getRecordsFromParticipantDemographicDataService(request); - await new Promise(res => setTimeout(res, 2000)); - const validators = composeValidators( - expectStatus(200) - ); - await validators(response); + let response; + let success = false; + for (let i = 0; i < 10; i++) { + response = await getRecordsFromParticipantDemographicDataService(request); + if (response.status === 200) { + success = true; + break; + } + console.log(`Waiting for participant response data to be available... (${i + 1}/10)`); + await new Promise(res => setTimeout(res, 2000)); + } + if (!success) { + throw new Error('Participant response data was not available after 10 retries (20 seconds).'); + } expect(response?.data?.[0]?.NhsNumber).toBe(9997160908); expect(response?.data?.[0]?.GivenName).toBe(givenName); expect(response?.data?.[0]?.FamilyName).toBe(familyName); }); await test.step('And NHSNumber, ScreeningId, ReferralFlag is written to Participant Management table', async () => { - const response = await getRecordsFromParticipantManagementDataService(request); - await new Promise(res => setTimeout(res, 2000)); + let response; + let success = false; + + for (let i = 0; i < 10; i++) { + response = await getRecordsFromParticipantManagementDataService(request); + if (response.status === 200) { + success = true; + break; + } + console.log(`Waiting for participant response data to be available... (${i + 1}/10)`); + await new Promise(res => setTimeout(res, 2000)); + } + if (!success) { + throw new Error('Participant response data was not available after 10 retries (20 seconds).'); + } expect(response?.data?.[0]?.NHSNumber).toBe(9997160908); expect(response?.data?.[0]?.ScreeningId).toBe(1); expect(response?.data?.[0]?.ReferralFlag).toBe(1); }); await test.step('DTOSS-10012 DTOSS-10012 verify NemsSubscription_Id in NEMS_SUBSCRIPTION table', async () => { + let response: any; + let success = false; - const response = await getRecordsFromNemsSubscription(request, nhsNumber); - await new Promise(res => setTimeout(res, 2000)); - - const validators = composeValidators( - expectStatus(200) - ); - await validators(response); - + for (let i = 0; i < 10; i++) { + response = await getRecordsFromNemsSubscription(request, nhsNumber); + if (response?.status === 200) { + success = true; + break; + } + console.log(`Waiting for NemsSubscription_Id data to be available... (${i + 1}/10)`); + await new Promise(res => setTimeout(res, 2000)); + } + if (!success || !response) { + throw new Error('NemsSubscription_Id response data was not available after 10 retries (20 seconds).'); + } const subscriptionID = extractSubscriptionID(response); expect(subscriptionID).not.toBeNull(); console.log(`Extracted Subscription ID: ${subscriptionID} for number: ${nhsNumber}`);