Skip to content
Merged
Show file tree
Hide file tree
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 @@ -5,6 +5,7 @@ import {
EmailTemplate,
} from 'nhs-notify-web-template-management-utils';
import { EmailTemplateForm } from '@forms/EmailTemplateForm/EmailTemplateForm';
import { ErrorCodes } from '@utils/error-codes';

jest.mock('@utils/amplify-utils');

Expand Down Expand Up @@ -91,7 +92,10 @@ test('renders page with multiple errors', () => {
fieldErrors: {
emailTemplateName: ['Template name error'],
emailTemplateSubjectLine: ['Template subject line error'],
emailTemplateMessage: ['Template message error'],
emailTemplateMessage: [
'Template message error',
ErrorCodes.MESSAGE_CONTAINS_INVALID_PERSONALISATION_FIELD_NAME,
],
},
},
name: '',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ exports[`Client-side validation triggers 1`] = `
<textarea
autocomplete="off"
class="nhsuk-textarea"
data-testid="emailTemplateMessage-input"
id="emailTemplateMessage"
name="emailTemplateMessage"
rows="12"
Expand Down Expand Up @@ -254,9 +253,6 @@ exports[`Client-side validation triggers 1`] = `
<li>
((nhsNumber))
</li>
<li>
((date))
</li>
</ul>
<p>
Make sure your personalisation fields exactly match the PDS personalisation fields. This includes using the correct order of upper and lower case letters.
Expand Down Expand Up @@ -753,16 +749,6 @@ exports[`renders page one error 1`] = `
Template name error
</a>
</li>
<li>
<a
href="#emailTemplateSubjectLine"
/>
</li>
<li>
<a
href="#emailTemplateMessage"
/>
</li>
</ul>
</div>
<h1
Expand Down Expand Up @@ -917,7 +903,6 @@ exports[`renders page one error 1`] = `
<textarea
autocomplete="off"
class="nhsuk-textarea"
data-testid="emailTemplateMessage-input"
id="emailTemplateMessage"
name="emailTemplateMessage"
rows="12"
Expand Down Expand Up @@ -1002,9 +987,6 @@ exports[`renders page one error 1`] = `
<li>
((nhsNumber))
</li>
<li>
((date))
</li>
</ul>
<p>
Make sure your personalisation fields exactly match the PDS personalisation fields. This includes using the correct order of upper and lower case letters.
Expand Down Expand Up @@ -1515,6 +1497,61 @@ exports[`renders page with multiple errors 1`] = `
Template message error
</a>
</li>
<li>
<a
href="#emailTemplateMessage"
>
<div
class="nhsuk-u-margin-top-1 nhsuk-u-margin-bottom-4"
>
You cannot use the following custom personalisation fields in your message:
</div>
<ul
class="nhsuk-list nhsuk-list--bullet"
>
<li
class="nhsuk-u-margin-bottom-0"
>
date
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_1
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_2
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_3
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_4
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_5
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_6
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_7
</li>
</ul>
</a>
</li>
</ul>
</div>
<h1
Expand Down Expand Up @@ -1688,12 +1725,60 @@ exports[`renders page with multiple errors 1`] = `
Error:
</span>
Template message error
<div
class="nhsuk-u-margin-top-1 nhsuk-u-margin-bottom-4"
>
You cannot use the following custom personalisation fields in your message:
</div>
<ul
class="nhsuk-list nhsuk-list--bullet"
>
<li
class="nhsuk-u-margin-bottom-0"
>
date
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_1
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_2
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_3
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_4
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_5
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_6
</li>
<li
class="nhsuk-u-margin-bottom-0"
>
address_line_7
</li>
</ul>
</span>
<textarea
aria-describedby="emailTemplateMessage--error-message"
autocomplete="off"
class="nhsuk-textarea nhsuk-textarea--error"
data-testid="emailTemplateMessage-input"
id="emailTemplateMessage"
name="emailTemplateMessage"
rows="12"
Expand Down Expand Up @@ -1778,9 +1863,6 @@ exports[`renders page with multiple errors 1`] = `
<li>
((nhsNumber))
</li>
<li>
((date))
</li>
</ul>
<p>
Make sure your personalisation fields exactly match the PDS personalisation fields. This includes using the correct order of upper and lower case letters.
Expand Down Expand Up @@ -2394,7 +2476,6 @@ exports[`renders page with preloaded field values 1`] = `
<textarea
autocomplete="off"
class="nhsuk-textarea"
data-testid="emailTemplateMessage-input"
id="emailTemplateMessage"
name="emailTemplateMessage"
rows="12"
Expand Down Expand Up @@ -2481,9 +2562,6 @@ exports[`renders page with preloaded field values 1`] = `
<li>
((nhsNumber))
</li>
<li>
((date))
</li>
</ul>
<p>
Make sure your personalisation fields exactly match the PDS personalisation fields. This includes using the correct order of upper and lower case letters.
Expand Down Expand Up @@ -3090,7 +3168,6 @@ exports[`renders page without back link for initial state with id - edit mode 1`
<textarea
autocomplete="off"
class="nhsuk-textarea"
data-testid="emailTemplateMessage-input"
id="emailTemplateMessage"
name="emailTemplateMessage"
rows="12"
Expand Down Expand Up @@ -3177,9 +3254,6 @@ exports[`renders page without back link for initial state with id - edit mode 1`
<li>
((nhsNumber))
</li>
<li>
((date))
</li>
</ul>
<p>
Make sure your personalisation fields exactly match the PDS personalisation fields. This includes using the correct order of upper and lower case letters.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { EmailTemplate } from 'nhs-notify-web-template-management-utils';
import { redirect } from 'next/navigation';
import { processFormActions } from '@forms/EmailTemplateForm/server-action';
import { MAX_EMAIL_CHARACTER_LENGTH } from '@utils/constants';
import { ErrorCodes } from '@utils/error-codes';

jest.mock('@utils/amplify-utils');
jest.mock('@utils/form-actions');
Expand Down Expand Up @@ -91,6 +92,30 @@ describe('CreateEmailTemplate server actions', () => {
});
});

it('create-email-template - should return response when when template message contains unsupported personalisation', async () => {
const response = await processFormActions(
initialState,
getMockFormData({
'form-id': 'create-email-template',
emailTemplateName: 'template-name',
emailTemplateSubjectLine: 'template-subject-line',
emailTemplateMessage: 'a template message containing ((date))',
})
);

expect(response).toEqual({
...initialState,
errorState: {
formErrors: [],
fieldErrors: {
emailTemplateMessage: [
ErrorCodes.MESSAGE_CONTAINS_INVALID_PERSONALISATION_FIELD_NAME,
],
},
},
});
});

test('should save the template and redirect', async () => {
saveTemplateMock.mockResolvedValue({
...initialState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -960,31 +960,6 @@ exports[`renders page one error 1`] = `
Template name error
</a>
</li>
<li>
<a
href="#letterTemplateCampaignId"
/>
</li>
<li>
<a
href="#letterTemplateLetterType"
/>
</li>
<li>
<a
href="#letterTemplateLanguage"
/>
</li>
<li>
<a
href="#letterTemplatePdf"
/>
</li>
<li>
<a
href="#letterTemplateCsv"
/>
</li>
</ul>
</div>
<form
Expand Down Expand Up @@ -1958,21 +1933,6 @@ exports[`renders page with multiple errors 1`] = `
CSV error
</a>
</li>
<li>
<a
href="#letterTemplateCampaignId"
/>
</li>
<li>
<a
href="#letterTemplateLetterType"
/>
</li>
<li>
<a
href="#letterTemplateLanguage"
/>
</li>
</ul>
</div>
<form
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
TemplateFormState,
} from 'nhs-notify-web-template-management-utils';
import { NhsAppTemplateForm } from '@forms/NhsAppTemplateForm/NhsAppTemplateForm';
import { ErrorCodes } from '@utils/error-codes';

jest.mock('@utils/amplify-utils');

Expand Down Expand Up @@ -115,7 +116,10 @@ test('renders page with multiple errors', () => {
formErrors: [],
fieldErrors: {
nhsAppTemplateName: ['Template name error'],
nhsAppTemplateMessage: ['Template message error'],
nhsAppTemplateMessage: [
'Template message error',
ErrorCodes.MESSAGE_CONTAINS_INVALID_PERSONALISATION_FIELD_NAME,
],
},
},
name: '',
Expand Down
Loading
Loading