Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
1 change: 1 addition & 0 deletions frontend/next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const nextConfig = (phase) => {
experimental: {
serverActions: {
allowedOrigins: ['**.nhsnotify.national.nhs.uk', 'notify.nhs.uk'],
bodySizeLimit: '6mb',
},
},

Expand Down
3 changes: 2 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
"dependencies": {
"@aws-amplify/adapter-nextjs": "^1.4.3",
"@aws-amplify/ui-react": "^6.9.1",
"clsx": "^2.1.1",
"aws-amplify": "^6.12.3",
"classnames": "^2.5.1",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
"jsonwebtoken": "^9.0.2",
"jwt-decode": "^4.0.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`CreateLetterTemplatePage should render CreateLetterTemplatePage 1`] = `
<NHSNotifyMain>
<h1
className="nhsuk-heading-xl"
data-testid="page-heading"
>
Create letter template
</h1>
<p
id="placeholder"
>
🚧 Placeholder 🚧
</p>
</NHSNotifyMain>
<LetterTemplateForm
initialState={
{
"language": "en",
"letterType": "x0",
"name": "",
"templateType": "LETTER",
}
}
/>
`;
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import { render } from '@testing-library/react';
import { mockDeep } from 'jest-mock-extended';
import {
TemplateFormState,
LetterTemplate,
} from 'nhs-notify-web-template-management-utils';
import { LetterTemplateForm } from '@forms/LetterTemplateForm/LetterTemplateForm';

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

jest.mock('react', () => {
const originalModule = jest.requireActual('react');

return {
...originalModule,
useActionState: (
_: (
formState: TemplateFormState,
formData: FormData
) => Promise<TemplateFormState>,
initialState: TemplateFormState
) => [initialState, '/action'],
};
});

test('renders page with preloaded field values', () => {
const container = render(
<LetterTemplateForm
initialState={mockDeep<TemplateFormState<LetterTemplate>>({
validationError: undefined,
name: 'template-name',
letterType: 'q1',
language: 'ar',
})}
/>
);
expect(container.asFragment()).toMatchSnapshot();
});

test('renders page one error', () => {
const container = render(
<LetterTemplateForm
initialState={mockDeep<TemplateFormState<LetterTemplate>>({
validationError: {
formErrors: [],
fieldErrors: {
letterTemplateName: ['Template name error'],
},
},
name: '',
letterType: 'x0',
language: 'en',
})}
/>
);
expect(container.asFragment()).toMatchSnapshot();
});

test('renders page with multiple errors', () => {
const container = render(
<LetterTemplateForm
initialState={mockDeep<TemplateFormState<LetterTemplate>>({
validationError: {
formErrors: [],
fieldErrors: {
letterTemplateName: ['Template name error'],
letterType: ['Template letter type error'],
letterLanguage: ['Template language error'],
letterTemplatePdf: ['PDF error'],
letterTemplateCsv: ['CSV error'],
},
},
name: '',
letterType: undefined,
language: undefined,
})}
/>
);
expect(container.asFragment()).toMatchSnapshot();
});
Loading
Loading