From a39434dac28b21d40df6b9ac8da1163d638026b6 Mon Sep 17 00:00:00 2001 From: Brock Anderson Date: Thu, 20 Jun 2024 14:18:16 -0700 Subject: [PATCH] feat: backend unit tests (#548) --- .../src/v1/routes/admin-report-routes.spec.ts | 14 ++++++++++++-- backend/src/v1/routes/admin-report-routes.ts | 2 +- backend/src/v1/services/report-service.spec.ts | 16 ++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/backend/src/v1/routes/admin-report-routes.spec.ts b/backend/src/v1/routes/admin-report-routes.spec.ts index 548147f2..ba2db2ed 100644 --- a/backend/src/v1/routes/admin-report-routes.spec.ts +++ b/backend/src/v1/routes/admin-report-routes.spec.ts @@ -86,7 +86,7 @@ describe('admin-report-routes', () => { const mockReportId = '4492feff-99d7-4b2b-8896-12a59a75d4e3'; await request(app) .get(`/${mockReportId}`) - .set('accepts', 'application/pdf') + .set('Accept', 'application/pdf') .expect(200); expect(mockGetReportPdf.mock.calls[0][1]).toBe(mockReportId); }); @@ -97,11 +97,21 @@ describe('admin-report-routes', () => { mockGetReportPdf.mockResolvedValueOnce(null); await request(app) .get(`/${mockReportId}`) - .set('accepts', 'application/pdf') + .set('Accept', 'application/pdf') .expect(404); expect(mockGetReportPdf.mock.calls[0][1]).toBe(mockReportId); }); }); + describe('if accept header is invalid', () => { + it('return an error', async () => { + const mockReportId = '4492feff-99d7-4b2b-8896-12a59a75d4e3'; + mockGetReportPdf.mockResolvedValueOnce(null); + await request(app) + .get(`/${mockReportId}`) + .set('Accept', 'application/json') + .expect(400); + }); + }); }); describe('PATCH /:id', () => { diff --git a/backend/src/v1/routes/admin-report-routes.ts b/backend/src/v1/routes/admin-report-routes.ts index 08a133fe..53c71e8c 100644 --- a/backend/src/v1/routes/admin-report-routes.ts +++ b/backend/src/v1/routes/admin-report-routes.ts @@ -107,7 +107,7 @@ router.get( // if not enough information provided, then it is a bad request logger.error(BAD_REQUEST); return res - .status(404) + .status(400) .json({ error: 'Unsupported format in accept header' }); }, ), diff --git a/backend/src/v1/services/report-service.spec.ts b/backend/src/v1/services/report-service.spec.ts index 69c486c7..1d0f408b 100644 --- a/backend/src/v1/services/report-service.spec.ts +++ b/backend/src/v1/services/report-service.spec.ts @@ -435,6 +435,22 @@ describe('getReportPdf', () => { expect(result).toBeInstanceOf(Buffer); }); }); + describe('when an invalid report id and/or bceidBusinessGuid are provided', () => { + it('throws an error ', async () => { + const mockReq = { + session: { + correlationID: 'mockCorrelationId', + }, + }; + const invalidReportId = '1'; + + jest.spyOn(reportService, 'getReportData').mockResolvedValueOnce(null); + jest.spyOn(utils, 'postDataToDocGenService').mockResolvedValueOnce(null); + await expect( + reportService.getReportPdf(mockReq, invalidReportId), + ).rejects.toThrow(); + }); + }); }); describe('genderCodeToGenderChartInfo', () => {