Skip to content

Commit d72a14d

Browse files
committed
Merge branch 'main' into feature/CCM-9037_internal-bucket
2 parents 68de1f0 + 4f870f1 commit d72a14d

File tree

157 files changed

+4946
-2471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+4946
-2471
lines changed

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ terraform-docs 0.19.0
66
vale 3.6.0
77
tfsec 1.28.10
88
nodejs 20.18.2
9+
jq 1.6
910

1011
# ==============================================================================
1112
# The section below is reserved for Docker image versions.

frontend/src/__tests__/app/copy-template/page.test.tsx

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,10 @@
33
*/
44
import CopyTemplatePage from '@app/copy-template/[templateId]/page';
55
import { CopyTemplate } from '@forms/CopyTemplate/CopyTemplate';
6-
import {
7-
TemplateType,
8-
TemplateStatus,
9-
} from 'nhs-notify-web-template-management-utils';
106
import { redirect } from 'next/navigation';
117
import { getTemplate } from '@utils/form-actions';
12-
import {
13-
Language,
14-
LetterType,
15-
TemplateDTO,
16-
VirusScanStatus,
17-
} from 'nhs-notify-backend-client';
8+
import { TemplateDto } from 'nhs-notify-backend-client';
9+
import { LetterTemplate } from 'nhs-notify-web-template-management-utils';
1810

1911
jest.mock('@utils/form-actions');
2012
jest.mock('next/navigation');
@@ -28,34 +20,34 @@ describe('CopyTemplatePage', () => {
2820

2921
const template = {
3022
id: 'template-id',
31-
templateType: TemplateType.EMAIL,
32-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
23+
templateType: 'EMAIL',
24+
templateStatus: 'NOT_YET_SUBMITTED',
3325
name: 'template-name',
3426
subject: 'template-subject-line',
3527
message: 'template-message',
3628
createdAt: '2025-01-13T10:19:25.579Z',
3729
updatedAt: '2025-01-13T10:19:25.579Z',
38-
} satisfies TemplateDTO;
30+
} satisfies TemplateDto;
3931

40-
const letterTemplate: TemplateDTO = {
32+
const letterTemplate: LetterTemplate = {
4133
id: 'template-id',
42-
templateType: TemplateType.LETTER,
43-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
34+
templateType: 'LETTER',
35+
templateStatus: 'NOT_YET_SUBMITTED',
4436
name: 'template-name',
4537
createdAt: '2025-01-13T10:19:25.579Z',
4638
updatedAt: '2025-01-13T10:19:25.579Z',
47-
letterType: LetterType.Q4,
48-
language: Language.FR,
39+
letterType: 'q4',
40+
language: 'fr',
4941
files: {
5042
pdfTemplate: {
5143
fileName: 'file.pdf',
5244
currentVersion: '61C1267A-0F37-4E1D-831E-494DE2BECC8C',
53-
virusScanStatus: VirusScanStatus.PASSED,
45+
virusScanStatus: 'PASSED',
5446
},
5547
testDataCsv: {
5648
fileName: 'file.csv',
5749
currentVersion: 'A8A76934-70F4-4735-8314-51CE097130DB',
58-
virusScanStatus: VirusScanStatus.PASSED,
50+
virusScanStatus: 'PASSED',
5951
},
6052
},
6153
};

frontend/src/__tests__/app/create-email-template/__snapshots__/page.test.tsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ exports[`CreateEmailTemplatePage should render CreateEmailTemplatePage 1`] = `
77
"message": "",
88
"name": "",
99
"subject": "",
10-
"templateStatus": "NOT_YET_SUBMITTED",
1110
"templateType": "EMAIL",
1211
}
1312
}

frontend/src/__tests__/app/create-nhs-app-template/__snapshots__/page.test.tsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ exports[`CreateNHSAppTemplatePage should render CreateNHSAppTemplatePage 1`] = `
66
{
77
"message": "",
88
"name": "",
9-
"templateStatus": "NOT_YET_SUBMITTED",
109
"templateType": "NHS_APP",
1110
}
1211
}

frontend/src/__tests__/app/create-text-message-template/__snapshots__/page.test.tsx.snap

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ exports[`CreateSMSTemplatePage should render CreateSMSTemplatePage 1`] = `
66
{
77
"message": "",
88
"name": "",
9-
"templateStatus": "NOT_YET_SUBMITTED",
109
"templateType": "SMS",
1110
}
1211
}

frontend/src/__tests__/app/delete-template/page.test.tsx

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
*/
44
import DeleteTemplatePage from '@app/delete-template/[templateId]/page';
55
import { DeleteTemplate } from '@forms/DeleteTemplate/DeleteTemplate';
6-
import {
7-
EmailTemplate,
8-
TemplateType,
9-
TemplateStatus,
10-
} from 'nhs-notify-web-template-management-utils';
116
import { redirect } from 'next/navigation';
127
import { getTemplate } from '@utils/form-actions';
13-
import { TemplateDTO } from 'nhs-notify-backend-client';
8+
import { TemplateDto } from 'nhs-notify-backend-client';
149

1510
jest.mock('@utils/form-actions');
1611
jest.mock('next/navigation');
@@ -25,20 +20,20 @@ describe('PreviewEmailTemplatePage', () => {
2520
it('should load page', async () => {
2621
const templateDTO = {
2722
id: 'template-id',
28-
templateType: TemplateType.EMAIL,
29-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
23+
templateType: 'EMAIL',
24+
templateStatus: 'NOT_YET_SUBMITTED',
3025
name: 'template-name',
3126
subject: 'template-subject-line',
3227
message: 'template-message',
3328
createdAt: '2025-01-13T10:19:25.579Z',
3429
updatedAt: '2025-01-13T10:19:25.579Z',
35-
} satisfies TemplateDTO;
30+
} satisfies TemplateDto;
3631

37-
const emailTemplate: EmailTemplate = {
32+
const emailTemplate: TemplateDto = {
3833
...templateDTO,
3934
subject: 'template-subject-line',
40-
templateType: TemplateType.EMAIL,
41-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
35+
templateType: 'EMAIL',
36+
templateStatus: 'NOT_YET_SUBMITTED',
4237
};
4338

4439
getTemplateMock.mockResolvedValueOnce(templateDTO);
@@ -65,8 +60,8 @@ describe('PreviewEmailTemplatePage', () => {
6560
test('should redirect to invalid-template when template is already submitted', async () => {
6661
getTemplateMock.mockResolvedValueOnce({
6762
id: 'template-id',
68-
templateStatus: TemplateStatus.SUBMITTED,
69-
templateType: TemplateType.NHS_APP,
63+
templateStatus: 'SUBMITTED',
64+
templateType: 'NHS_APP',
7065
name: 'template-name',
7166
message: 'template-message',
7267
createdAt: 'today',
@@ -85,8 +80,8 @@ describe('PreviewEmailTemplatePage', () => {
8580
test('should redirect to manage-templates when template is already deleted', async () => {
8681
getTemplateMock.mockResolvedValueOnce({
8782
id: 'template-id',
88-
templateStatus: TemplateStatus.DELETED,
89-
templateType: TemplateType.NHS_APP,
83+
templateStatus: 'DELETED',
84+
templateType: 'NHS_APP',
9085
name: 'template-name',
9186
message: 'template-message',
9287
createdAt: 'today',

frontend/src/__tests__/app/edit-email-template/page.test.tsx

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
*/
44
import EditEmailTemplatePage from '@app/edit-email-template/[templateId]/page';
55
import { getTemplate } from '@utils/form-actions';
6-
import {
7-
EmailTemplate,
8-
TemplateStatus,
9-
TemplateType,
10-
} from 'nhs-notify-web-template-management-utils';
116
import { redirect } from 'next/navigation';
127
import { EmailTemplateForm } from '@forms/EmailTemplateForm/EmailTemplateForm';
13-
import { TemplateDTO } from 'nhs-notify-backend-client';
8+
import { EmailTemplate } from 'nhs-notify-web-template-management-utils';
149

1510
jest.mock('@utils/form-actions');
1611
jest.mock('next/navigation');
@@ -19,16 +14,16 @@ jest.mock('@forms/EmailTemplateForm/EmailTemplateForm');
1914
const getTemplateMock = jest.mocked(getTemplate);
2015
const redirectMock = jest.mocked(redirect);
2116

22-
const templateDTO = {
17+
const template: EmailTemplate = {
2318
id: 'template-id',
24-
templateType: TemplateType.EMAIL,
25-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
19+
templateType: 'EMAIL',
20+
templateStatus: 'NOT_YET_SUBMITTED',
2621
name: 'name',
2722
subject: 'subject',
2823
message: 'message',
2924
createdAt: '2025-01-13T10:19:25.579Z',
3025
updatedAt: '2025-01-13T10:19:25.579Z',
31-
} satisfies TemplateDTO;
26+
};
3227

3328
describe('EditEmailTemplatePage', () => {
3429
beforeEach(jest.resetAllMocks);
@@ -49,8 +44,8 @@ describe('EditEmailTemplatePage', () => {
4944

5045
it('should redirect to invalid-template when template type is not EMAIL', async () => {
5146
getTemplateMock.mockResolvedValueOnce({
52-
...templateDTO,
53-
templateType: TemplateType.NHS_APP,
47+
...template,
48+
templateType: 'NHS_APP',
5449
});
5550

5651
await EditEmailTemplatePage({
@@ -65,13 +60,13 @@ describe('EditEmailTemplatePage', () => {
6560
});
6661

6762
it('should render CreateEmailTemplatePage component when template is found', async () => {
68-
getTemplateMock.mockResolvedValueOnce(templateDTO);
63+
getTemplateMock.mockResolvedValueOnce(template);
6964

70-
const emailTemplate: EmailTemplate = {
71-
...templateDTO,
65+
const emailTemplate = {
66+
...template,
7267
subject: 'subject',
73-
templateType: TemplateType.EMAIL,
74-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
68+
templateType: 'EMAIL' as const,
69+
templateStatus: 'NOT_YET_SUBMITTED',
7570
};
7671

7772
const page = await EditEmailTemplatePage({

frontend/src/__tests__/app/edit-nhs-app-template/page.test.tsx

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
* @jest-environment node
33
*/
44
import { redirect } from 'next/navigation';
5-
import {
6-
TemplateType,
7-
TemplateStatus,
8-
NHSAppTemplate,
9-
} from 'nhs-notify-web-template-management-utils';
5+
import { NHSAppTemplate } from 'nhs-notify-web-template-management-utils';
106
import { getTemplate } from '@utils/form-actions';
117
import { NhsAppTemplateForm } from '@forms/NhsAppTemplateForm/NhsAppTemplateForm';
128
import EditNhsAppTemplatePage from '@app/edit-nhs-app-template/[templateId]/page';
13-
import { TemplateDTO } from 'nhs-notify-backend-client';
9+
import { TemplateDto } from 'nhs-notify-backend-client';
10+
import { EMAIL_TEMPLATE, LETTER_TEMPLATE, SMS_TEMPLATE } from '../../helpers';
1411

1512
jest.mock('@forms/NhsAppTemplateForm/NhsAppTemplateForm');
1613
jest.mock('@utils/form-actions');
@@ -23,23 +20,23 @@ describe('EditNhsAppTemplatePage', () => {
2320
beforeEach(jest.resetAllMocks);
2421

2522
test('page loads', async () => {
26-
const templateDTO = {
23+
const template = {
2724
id: 'template-id',
28-
templateType: TemplateType.NHS_APP,
29-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
25+
templateType: 'NHS_APP',
26+
templateStatus: 'NOT_YET_SUBMITTED',
3027
name: 'name',
3128
message: 'message',
3229
createdAt: '2025-01-13T10:19:25.579Z',
3330
updatedAt: '2025-01-13T10:19:25.579Z',
34-
} satisfies TemplateDTO;
31+
} satisfies TemplateDto;
3532

3633
const nhsAppTemplate: NHSAppTemplate = {
37-
...templateDTO,
38-
templateType: TemplateType.NHS_APP,
39-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
34+
...template,
35+
templateType: 'NHS_APP',
36+
templateStatus: 'NOT_YET_SUBMITTED',
4037
};
4138

42-
getTemplateMock.mockResolvedValueOnce(templateDTO);
39+
getTemplateMock.mockResolvedValueOnce(template);
4340

4441
const page = await EditNhsAppTemplatePage({
4542
params: Promise.resolve({
@@ -62,23 +59,10 @@ describe('EditNhsAppTemplatePage', () => {
6259
expect(redirectMock).toHaveBeenCalledWith('/invalid-template', 'replace');
6360
});
6461

65-
const invalidTemplateTypes: TemplateType[] = [
66-
TemplateType.EMAIL,
67-
TemplateType.SMS,
68-
];
69-
70-
test.each(invalidTemplateTypes)(
71-
'should render invalid template, when template type is %p',
72-
async (templateType) => {
73-
getTemplateMock.mockResolvedValueOnce({
74-
id: 'template-id',
75-
templateType,
76-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
77-
name: 'name',
78-
message: 'message',
79-
createdAt: 'today',
80-
updatedAt: 'today',
81-
});
62+
test.each([EMAIL_TEMPLATE, SMS_TEMPLATE, LETTER_TEMPLATE])(
63+
'should render invalid template, when template type is $templateType',
64+
async (template) => {
65+
getTemplateMock.mockResolvedValueOnce(template);
8266

8367
await EditNhsAppTemplatePage({
8468
params: Promise.resolve({

frontend/src/__tests__/app/edit-text-message-template/page.test.tsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,10 @@
33
*/
44
import EditSmsTemplatePage from '@app/edit-text-message-template/[templateId]/page';
55
import { getTemplate } from '@utils/form-actions';
6-
import {
7-
SMSTemplate,
8-
TemplateType,
9-
TemplateStatus,
10-
} from 'nhs-notify-web-template-management-utils';
116
import { redirect } from 'next/navigation';
127
import { SmsTemplateForm } from '@forms/SmsTemplateForm/SmsTemplateForm';
13-
import { TemplateDTO } from 'nhs-notify-backend-client';
8+
import { TemplateDto } from 'nhs-notify-backend-client';
9+
import { SMSTemplate } from 'nhs-notify-web-template-management-utils';
1410

1511
jest.mock('@utils/form-actions');
1612
jest.mock('next/navigation');
@@ -21,13 +17,13 @@ const redirectMock = jest.mocked(redirect);
2117

2218
const templateDTO = {
2319
id: 'template-id',
24-
templateType: TemplateType.SMS,
25-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
20+
templateType: 'SMS',
21+
templateStatus: 'NOT_YET_SUBMITTED',
2622
name: 'name',
2723
message: 'message',
2824
createdAt: '2025-01-13T10:19:25.579Z',
2925
updatedAt: '2025-01-13T10:19:25.579Z',
30-
} satisfies TemplateDTO;
26+
} satisfies TemplateDto;
3127

3228
describe('EditSmsTemplatePage', () => {
3329
beforeEach(jest.resetAllMocks);
@@ -49,7 +45,7 @@ describe('EditSmsTemplatePage', () => {
4945
it('should redirect to invalid-template when template type is not SMS', async () => {
5046
getTemplateMock.mockResolvedValueOnce({
5147
...templateDTO,
52-
templateType: TemplateType.NHS_APP,
48+
templateType: 'NHS_APP',
5349
});
5450

5551
await EditSmsTemplatePage({
@@ -68,8 +64,8 @@ describe('EditSmsTemplatePage', () => {
6864

6965
const smsTemplate: SMSTemplate = {
7066
...templateDTO,
71-
templateType: TemplateType.SMS,
72-
templateStatus: TemplateStatus.NOT_YET_SUBMITTED,
67+
templateType: 'SMS',
68+
templateStatus: 'NOT_YET_SUBMITTED',
7369
};
7470

7571
const page = await EditSmsTemplatePage({

frontend/src/__tests__/app/email-template-submitted/page.test.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22
* @jest-environment node
33
*/
44
import EmailTemplateSubmittedPage from '@app/email-template-submitted/[templateId]/page';
5-
import {
6-
TemplateType,
7-
TemplateStatus,
8-
} from 'nhs-notify-web-template-management-utils';
95
import { TemplateSubmitted } from '@molecules/TemplateSubmitted/TemplateSubmitted';
106
import { getTemplate } from '@utils/form-actions';
117
import { redirect } from 'next/navigation';
8+
import { TemplateDto } from 'nhs-notify-backend-client';
129

1310
jest.mock('@molecules/TemplateSubmitted/TemplateSubmitted');
1411
jest.mock('@utils/form-actions');
@@ -23,14 +20,14 @@ describe('EmailTemplateSubmittedPage', () => {
2320
test('should load page', async () => {
2421
const template = {
2522
id: 'template-id',
26-
templateType: TemplateType.EMAIL,
27-
templateStatus: TemplateStatus.SUBMITTED,
23+
templateType: 'EMAIL',
24+
templateStatus: 'SUBMITTED',
2825
name: 'template-name',
2926
message: 'example',
3027
subject: 'subject',
3128
createdAt: 'today',
3229
updatedAt: 'today',
33-
};
30+
} satisfies TemplateDto;
3431

3532
getTemplateMock.mockResolvedValueOnce(template);
3633

0 commit comments

Comments
 (0)