Skip to content

Commit 9cf307d

Browse files
CCM-8961: Only allow letter submit on NOT_YET_SUBMITTED (#393)
1 parent f8068f1 commit 9cf307d

File tree

19 files changed

+824
-121
lines changed

19 files changed

+824
-121
lines changed

frontend/src/__tests__/components/molecules/__snapshots__/MessageTemplates.test.tsx.snap

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,16 @@ exports[`MessageTemplates component matches snapshot with pending proof request
484484
Copy
485485
</a>
486486
</p>
487+
<p
488+
class="nhsuk-u-margin-bottom-2"
489+
>
490+
<a
491+
aria-label="Delete Template 1"
492+
href="/delete-template/1"
493+
>
494+
Delete
495+
</a>
496+
</p>
487497
</div>
488498
</td>
489499
</tr>

frontend/src/__tests__/components/molecules/__snapshots__/ZodErrorSummary.test.tsx.snap

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,16 @@ exports[`Renders ZodErrorSummary correctly with errors 1`] = `
2525
Field error
2626
</a>
2727
</li>
28-
<li>
29-
<a>
30-
Form error
31-
</a>
32-
</li>
28+
<span
29+
class="nhsuk-error-message"
30+
>
31+
<span
32+
class="nhsuk-u-visually-hidden"
33+
>
34+
Error:
35+
</span>
36+
Form error
37+
</span>
3338
</ul>
3439
</div>
3540
</DocumentFragment>

frontend/src/__tests__/components/organisms/PreviewLetterTemplate.test.tsx

Lines changed: 78 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,42 @@
1-
import { render } from '@testing-library/react';
21
import { PreviewLetterTemplate } from '@organisms/PreviewLetterTemplate/PreviewLetterTemplate';
2+
import { render } from '@testing-library/react';
33

44
describe('PreviewLetterTemplate component', () => {
5-
it('matches snapshot', () => {
5+
it('matches snapshot when template status is VIRUS_SCAN_FAILED', () => {
6+
const container = render(
7+
<PreviewLetterTemplate
8+
template={{
9+
templateType: 'LETTER',
10+
name: 'test-template-letter',
11+
id: 'template-id',
12+
templateStatus: 'VIRUS_SCAN_FAILED',
13+
language: 'en',
14+
letterType: 'q1',
15+
files: {
16+
pdfTemplate: {
17+
fileName: 'file.pdf',
18+
currentVersion: '4C728B7D-A028-4BA2-B180-A63CDD2AE1E9',
19+
virusScanStatus: 'FAILED',
20+
},
21+
testDataCsv: undefined,
22+
},
23+
createdAt: '2025-04-02T09:33:25.729Z',
24+
updatedAt: '2025-04-02T09:33:25.729Z',
25+
}}
26+
/>
27+
);
28+
29+
expect(container.asFragment()).toMatchSnapshot();
30+
});
31+
32+
it('matches snapshot when template status is PENDING_PROOF_REQUEST', () => {
633
const container = render(
734
<PreviewLetterTemplate
835
template={{
936
id: '53525D03-1BC1-4563-ABF9-A74FF04142AF',
1037
name: 'letter',
1138
templateType: 'LETTER',
12-
templateStatus: 'NOT_YET_SUBMITTED',
39+
templateStatus: 'PENDING_PROOF_REQUEST',
1340
letterType: 'q4',
1441
language: 'ar',
1542
files: {
@@ -28,23 +55,53 @@ describe('PreviewLetterTemplate component', () => {
2855
expect(container.asFragment()).toMatchSnapshot();
2956
});
3057

31-
it('matches snapshot when template status is VIRUS_SCAN_FAILED', () => {
58+
it('matches snapshot when template status is NOT_YET_SUBMITTED', () => {
59+
const container = render(
60+
<PreviewLetterTemplate
61+
template={{
62+
id: '0A097DCD-35F9-4DAD-A37E-AC358B71B74D',
63+
name: 'letter',
64+
templateType: 'LETTER',
65+
templateStatus: 'NOT_YET_SUBMITTED',
66+
letterType: 'x0',
67+
language: 'en',
68+
files: {
69+
pdfTemplate: {
70+
fileName: 'file.pdf',
71+
currentVersion: 'b',
72+
virusScanStatus: 'PASSED',
73+
},
74+
},
75+
createdAt: '2025-04-02T09:33:25.729Z',
76+
updatedAt: '2025-04-02T09:33:25.729Z',
77+
}}
78+
/>
79+
);
80+
81+
expect(container.asFragment()).toMatchSnapshot();
82+
});
83+
84+
it('matches snapshot when template status is VALIDATION_FAILED', () => {
3285
const container = render(
3386
<PreviewLetterTemplate
3487
template={{
3588
templateType: 'LETTER',
3689
name: 'test-template-letter',
3790
id: 'template-id',
38-
templateStatus: 'VIRUS_SCAN_FAILED',
91+
templateStatus: 'VALIDATION_FAILED',
3992
language: 'en',
4093
letterType: 'q1',
4194
files: {
4295
pdfTemplate: {
4396
fileName: 'file.pdf',
44-
currentVersion: '4C728B7D-A028-4BA2-B180-A63CDD2AE1E9',
45-
virusScanStatus: 'FAILED',
97+
currentVersion: 'a',
98+
virusScanStatus: 'PASSED',
99+
},
100+
testDataCsv: {
101+
fileName: 'file.csv',
102+
currentVersion: 'a',
103+
virusScanStatus: 'PASSED',
46104
},
47-
testDataCsv: undefined,
48105
},
49106
createdAt: '2025-04-02T09:33:25.729Z',
50107
updatedAt: '2025-04-02T09:33:25.729Z',
@@ -55,21 +112,21 @@ describe('PreviewLetterTemplate component', () => {
55112
expect(container.asFragment()).toMatchSnapshot();
56113
});
57114

58-
it('matches snapshot when template status is PENDING_PROOF_REQUEST', () => {
115+
it('matches snapshot when template status is PENDING_UPLOAD', () => {
59116
const container = render(
60117
<PreviewLetterTemplate
61118
template={{
62-
id: '53525D03-1BC1-4563-ABF9-A74FF04142AF',
63-
name: 'letter',
64119
templateType: 'LETTER',
65-
templateStatus: 'PENDING_PROOF_REQUEST',
66-
letterType: 'q4',
67-
language: 'ar',
120+
name: 'test-template-letter',
121+
id: 'template-id',
122+
templateStatus: 'PENDING_UPLOAD',
123+
language: 'en',
124+
letterType: 'q1',
68125
files: {
69126
pdfTemplate: {
70127
fileName: 'file.pdf',
71128
currentVersion: 'a',
72-
virusScanStatus: 'PASSED',
129+
virusScanStatus: 'PENDING',
73130
},
74131
},
75132
createdAt: '2025-04-02T09:33:25.729Z',
@@ -81,20 +138,20 @@ describe('PreviewLetterTemplate component', () => {
81138
expect(container.asFragment()).toMatchSnapshot();
82139
});
83140

84-
it('matches snapshot when template status is NOT_YET_SUBMITTED', () => {
141+
it('matches snapshot when template status is PENDING_VALIDATION', () => {
85142
const container = render(
86143
<PreviewLetterTemplate
87144
template={{
88-
id: '0A097DCD-35F9-4DAD-A37E-AC358B71B74D',
89-
name: 'letter',
90145
templateType: 'LETTER',
91-
templateStatus: 'NOT_YET_SUBMITTED',
92-
letterType: 'x0',
146+
name: 'test-template-letter',
147+
id: 'template-id',
148+
templateStatus: 'PENDING_VALIDATION',
93149
language: 'en',
150+
letterType: 'q1',
94151
files: {
95152
pdfTemplate: {
96153
fileName: 'file.pdf',
97-
currentVersion: 'b',
154+
currentVersion: 'a',
98155
virusScanStatus: 'PASSED',
99156
},
100157
},

0 commit comments

Comments
 (0)