diff --git a/tests/constants/api_constants.ts b/tests/constants/api_constants.ts index 53e1d703..e90c1d14 100644 --- a/tests/constants/api_constants.ts +++ b/tests/constants/api_constants.ts @@ -1,8 +1,17 @@ export const SUPPLIER_LETTERS = 'letters'; -export const SUPPLIER_API_URL_SANDBOX = 'https://internal-dev-sandbox.api.service.nhs.uk/nhs-notify-supplier'; export const AWS_REGION = 'eu-west-2'; export const envName = process.env.PR_NUMBER ?? 'main'; export const API_NAME = `nhs-${envName}-supapi`; export const LETTERSTABLENAME = `nhs-${envName}-supapi-letters`; export const SUPPLIERID = 'TestSupplier1'; export const MI_ENDPOINT = 'mi'; + +const formattedPr = process.env.PR_NUMBER + ? process.env.PR_NUMBER.replace(/^pr(\d+)$/i, "PR-$1") + : null; + +// Build sandbox environment name +const sandboxEnv = formattedPr + ? `nhs-notify-supplier-${formattedPr}` + : "nhs-notify-supplier"; +export const SUPPLIER_API_URL_SANDBOX = `https://internal-dev-sandbox.api.service.nhs.uk/${sandboxEnv}`; diff --git a/tests/helpers/generate_fetch_testData.ts b/tests/helpers/generate_fetch_testData.ts index 2fd63aa6..069e7886 100644 --- a/tests/helpers/generate_fetch_testData.ts +++ b/tests/helpers/generate_fetch_testData.ts @@ -29,6 +29,7 @@ export async function createTestData(supplierId: string): Promise { supplierId: supplierId, environment: envName, awsAccountId: '820178564574', + letterId: 'letterId', groupId: 'TestGroupID', specificationId: 'TestSpecificationID', status: 'PENDING', diff --git a/tests/helpers/pnpmHelpers.ts b/tests/helpers/pnpmHelpers.ts index e0e748c0..4a55ca9e 100644 --- a/tests/helpers/pnpmHelpers.ts +++ b/tests/helpers/pnpmHelpers.ts @@ -11,6 +11,7 @@ export async function runCreateLetter(options: { supplierId: string; environment: string; awsAccountId: string; + letterId: string; groupId: string; specificationId: string; status: string; @@ -21,6 +22,7 @@ export async function runCreateLetter(options: { supplierId, environment, awsAccountId, + letterId, groupId, specificationId, status, @@ -46,6 +48,8 @@ export async function runCreateLetter(options: { environment, '--awsAccountId', awsAccountId, + '--letter-id', + letterId, '--group-id', groupId, '--specification-id', diff --git a/tests/sandbox/testCases/updateLetterStatus_testCases.ts b/tests/sandbox/testCases/updateLetterStatus_testCases.ts index a22f3675..b81ca167 100644 --- a/tests/sandbox/testCases/updateLetterStatus_testCases.ts +++ b/tests/sandbox/testCases/updateLetterStatus_testCases.ts @@ -16,8 +16,8 @@ export type ApiSandboxUpdateLetterStatusTestData = { export const apiSandboxUpdateLetterStatusTestData: ApiSandboxUpdateLetterStatusTestData[] = [ { - testCase: '200 response if record is updated with status PENDING', - id: '2WL5eYSWGzCHlGmzNxuqVusPxDg', + testCase: '202 response if record is updated with status PENDING', + id: '24L5eYSWGzCHlGmzNxuqVusPxDg', header: sandBoxHeader, body: { data: { @@ -28,22 +28,12 @@ export const apiSandboxUpdateLetterStatusTestData: ApiSandboxUpdateLetterStatusT }, } }, - expectedStatus: 200, - expectedResponse: { - data: { - type: 'Letter', - id: '2WL5eYSWGzCHlGmzNxuqVusPxDg', - attributes: { - status: 'PENDING', - specificationId:'2WL5eYSWGzCHlGmzNxuqVusPxDg', - }, - } - }, + expectedStatus: 202, }, { - testCase: '200 response if record is updated with status REJECTED', - id: '2WL5eYSWGzCHlGmzNxuqVusPxDg', + testCase: '202 response if record is updated with status REJECTED', + id: '24L5eYSWGzCHlGmzNxuqVusPxDg', header: sandBoxHeader, body: { data: { @@ -51,24 +41,12 @@ export const apiSandboxUpdateLetterStatusTestData: ApiSandboxUpdateLetterStatusT id: '2WL5eYSWGzCHlGmzNxuqVusPxDg', attributes: { status: 'REJECTED', - reasonCode: 'R01', - reasonText: 'failed validation', - }, - } - }, - expectedStatus: 200, - expectedResponse: { - data: { - type: 'Letter', - id: '2WL5eYSWGzCHlGmzNxuqVusPxDg', - attributes: { - reasonCode: 'R01', - reasonText: 'failed validation', - status: 'REJECTED', - specificationId:'2WL5eYSWGzCHlGmzNxuqVusPxDg', + reasonCode: 'R07', + reasonText: 'No such address', }, } }, + expectedStatus: 202, }, { testCase: '404 response if no resource is found for the given id', diff --git a/tests/sandbox/testCases/updateMultipleStatus_testCases.ts b/tests/sandbox/testCases/updateMultipleStatus_testCases.ts index dd6fdc7b..c312a334 100644 --- a/tests/sandbox/testCases/updateMultipleStatus_testCases.ts +++ b/tests/sandbox/testCases/updateMultipleStatus_testCases.ts @@ -23,7 +23,7 @@ type postRequest = { export const apiSandboxMultipleLetterStatusTestData: ApiSandboxUpdateLetterStatusTestData[] = [{ - testCase: '200 response if records are updated', + testCase: '202 response if records are updated', header: sandBoxHeader, body:{ data : @@ -106,7 +106,7 @@ export const apiSandboxMultipleLetterStatusTestData: ApiSandboxUpdateLetterStatu type: 'Letter' } ]}, - expectedStatus: 200 + expectedStatus: 202 }, { testCase: '404 response if invalid request is passed', diff --git a/tests/sandbox/updateLetterStatus.spec.ts b/tests/sandbox/updateLetterStatus.spec.ts index 9e0d9a4d..02d9d9b7 100644 --- a/tests/sandbox/updateLetterStatus.spec.ts +++ b/tests/sandbox/updateLetterStatus.spec.ts @@ -7,16 +7,18 @@ test.describe('Sandbox Tests To Update Letter Status', () => { apiSandboxUpdateLetterStatusTestData.forEach(({ testCase, header, id, body, expectedStatus, expectedResponse }) => { test(`Patch /Letters endpoint returns ${testCase}`, async ({ request }) => { - const response = await request.patch(`${SUPPLIER_API_URL_SANDBOX}/${SUPPLIER_LETTERS}/${id}` ,{ headers: header, data: body }); - const res = await response.json(); - expect(response.status()).toBe(expectedStatus); - expect(res).toEqual(expectedResponse); + console.log("URL", `${SUPPLIER_API_URL_SANDBOX}/${SUPPLIER_LETTERS}/${id}`); + expect(response.status()).toBe(expectedStatus); + if (response.status() != 202){ + const res = await response.json(); + expect(res).toEqual(expectedResponse); + } }); }); });