Skip to content
Merged
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 @@ -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}`);
Expand Down
Loading