Skip to content

Commit 3a5b7e5

Browse files
Added tests for letter PDF
1 parent 42b0816 commit 3a5b7e5

2 files changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import { expect, test } from "@playwright/test";
2+
import getRestApiGatewayBaseUrl from "../../helpers/aws-gateway-helper";
3+
import { getLettersBySupplier } from "../../helpers/generate-fetch-test-data";
4+
import { SUPPLIERID, SUPPLIER_LETTERS, DATA } from "../../constants/api-constants";
5+
import { createValidRequestHeaders } from "../../constants/request-headers";
6+
import {
7+
error404ResponseBody,
8+
error500ResponseBody,
9+
} from "../../helpers/common-types";
10+
11+
let baseUrl: string;
12+
13+
test.beforeAll(async () => {
14+
baseUrl = await getRestApiGatewayBaseUrl();
15+
});
16+
17+
test.describe("API Gateway Tests to Verify Get Letter PDF Endpoint", () => {
18+
test(`Get /letters/{id}/data returns 200 and valid response for a given id`, async ({
19+
request,
20+
}) => {
21+
const letters = await getLettersBySupplier(SUPPLIERID, "PENDING", 1);
22+
23+
if (!letters?.length) {
24+
test.fail(true, `No PENDING letters found for supplier ${SUPPLIERID}`);
25+
return;
26+
}
27+
const letter = letters[0];
28+
const headers = createValidRequestHeaders();
29+
const response = await request.get(
30+
`${baseUrl}/${SUPPLIER_LETTERS}/${letter.id}/${DATA}`,
31+
{
32+
headers,
33+
},
34+
);
35+
36+
expect(response.status()).toBe(200);
37+
const responseBody = await response.text();
38+
expect(responseBody).toContain("PDF");
39+
});
40+
41+
test(`Get /letters/{id}/data returns 404 if no resource is found for id`, async ({
42+
request,
43+
}) => {
44+
const id = "11";
45+
const headers = createValidRequestHeaders();
46+
const response = await request.get(
47+
`${baseUrl}/${SUPPLIER_LETTERS}/${id}/${DATA}`,
48+
{
49+
headers,
50+
},
51+
);
52+
53+
const responseBody = await response.json();
54+
expect(response.status()).toBe(404);
55+
expect(responseBody).toMatchObject(error404ResponseBody());
56+
});
57+
58+
test(`Get /letters/{id}/data returns 500 if letter is not found for supplierId ${SUPPLIERID}`, async ({
59+
request,
60+
}) => {
61+
const id = "non-existing-id-12345";
62+
const headers = createValidRequestHeaders();
63+
const response = await request.get(`${baseUrl}/${SUPPLIER_LETTERS}/${id}`, {
64+
headers,
65+
});
66+
67+
const responseBody = await response.json();
68+
expect(response.status()).toBe(500);
69+
expect(responseBody).toMatchObject(error500ResponseBody());
70+
});
71+
});

tests/constants/api-constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ export const SUPPLIERID = "TestSupplier1";
99
export const MI_ENDPOINT = "mi";
1010
export const SUPPLIERTABLENAME = `nhs-${envName}-supapi-suppliers`;
1111
export const UPSERT_LETTER_LAMBDA_ARN = `arn:aws:lambda:eu-west-2:820178564574:function:nhs-${envName}-supapi-upsertletter`;
12+
export const DATA = "data";

0 commit comments

Comments
 (0)