1- import { render , screen } from '@testing-library/react' ;
2- import { PreviewTemplateDetails } from '@molecules/PreviewTemplateDetails' ;
1+ import PreviewTemplateDetailsEmail from '@molecules/PreviewTemplateDetails/PreviewTemplateDetailsEmail' ;
2+ import PreviewTemplateDetailsLetter from '@molecules/PreviewTemplateDetails/PreviewTemplateDetailsLetter' ;
3+ import PreviewTemplateDetailsNhsApp from '@molecules/PreviewTemplateDetails/PreviewTemplateDetailsNhsApp' ;
4+ import PreviewTemplateDetailsSms from '@molecules/PreviewTemplateDetails/PreviewTemplateDetailsSms' ;
5+ import { render } from '@testing-library/react' ;
36
4- describe ( 'PreviewTemplateDetails component ' , ( ) => {
5- it ( 'matches not yet submitted snapshot' , ( ) => {
7+ describe ( 'PreviewTemplateDetailsNhsApp ' , ( ) => {
8+ it ( 'matches snapshot' , ( ) => {
69 const container = render (
7- < PreviewTemplateDetails
10+ < PreviewTemplateDetailsNhsApp
811 template = { {
912 id : 'template-id' ,
1013 name : 'Example template' ,
@@ -14,53 +17,66 @@ describe('PreviewTemplateDetails component', () => {
1417 createdAt : '2025-01-13T10:19:25.579Z' ,
1518 updatedAt : '2025-01-13T10:19:25.579Z' ,
1619 } }
17- templateTypeText = 'Channel template'
18- contentPreview = { [
19- {
20- heading : 'Heading' ,
21- id : 'heading' ,
22- value : 'Test value-1' ,
23- } ,
24- ] }
20+ message = 'app content'
2521 />
2622 ) ;
2723
2824 expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
2925 } ) ;
26+ } ) ;
3027
31- it ( 'matches submitted snapshot' , ( ) => {
28+ describe ( 'PreviewTemplateDetailsEmail' , ( ) => {
29+ it ( 'matches snapshot' , ( ) => {
3230 const container = render (
33- < PreviewTemplateDetails
31+ < PreviewTemplateDetailsEmail
3432 template = { {
3533 id : 'template-id' ,
36- name : 'Example template' ,
34+ name : 'Example Email template' ,
35+ message : 'email message message' ,
36+ subject : 'subject' ,
37+ templateStatus : 'SUBMITTED' ,
38+ templateType : 'EMAIL' ,
39+ createdAt : '2025-01-13T10:19:25.579Z' ,
40+ updatedAt : '2025-01-13T10:19:25.579Z' ,
41+ } }
42+ message = 'email content'
43+ subject = 'email subject'
44+ />
45+ ) ;
46+
47+ expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
48+ } ) ;
49+ } ) ;
50+
51+ describe ( 'PreviewTemplateDetailsSms' , ( ) => {
52+ it ( 'matches snapshot' , ( ) => {
53+ const container = render (
54+ < PreviewTemplateDetailsSms
55+ template = { {
56+ id : 'template-id' ,
57+ name : 'SMS template' ,
58+ message : 'SMS message' ,
3759 templateStatus : 'SUBMITTED' ,
3860 templateType : 'SMS' ,
39- message : 'text message message' ,
4061 createdAt : '2025-01-13T10:19:25.579Z' ,
4162 updatedAt : '2025-01-13T10:19:25.579Z' ,
4263 } }
43- templateTypeText = 'Channel template'
44- contentPreview = { [
45- {
46- heading : 'Heading' ,
47- id : 'heading' ,
48- value : 'Test value-1' ,
49- } ,
50- ] }
64+ message = 'SMS content'
5165 />
5266 ) ;
5367
5468 expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
5569 } ) ;
70+ } ) ;
5671
57- it ( 'renders without content preview' , ( ) => {
72+ describe ( 'PreviewTemplateDetailsLetter' , ( ) => {
73+ it ( 'matches snapshot without proofs' , ( ) => {
5874 const container = render (
59- < PreviewTemplateDetails
75+ < PreviewTemplateDetailsLetter
6076 template = { {
6177 id : 'template-id' ,
6278 name : 'Example template' ,
63- templateStatus : 'SUBMITTED ' ,
79+ templateStatus : 'PENDING_VALIDATION ' ,
6480 templateType : 'LETTER' ,
6581 letterType : 'x0' ,
6682 language : 'fr' ,
@@ -79,27 +95,19 @@ describe('PreviewTemplateDetails component', () => {
7995 createdAt : '2025-01-13T10:19:25.579Z' ,
8096 updatedAt : '2025-01-13T10:19:25.579Z' ,
8197 } }
82- additionalMetaFields = { [
83- {
84- title : 'Meta' ,
85- id : 'meta' ,
86- content : < p > metadata</ p > ,
87- } ,
88- ] }
89- templateTypeText = 'Channel template'
9098 />
9199 ) ;
92100
93101 expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
94102 } ) ;
95103
96- it ( 'renders letter template when testDataCsv is not present ' , ( ) => {
104+ it ( 'matches snapshot when test data CSV is absent ' , ( ) => {
97105 const container = render (
98- < PreviewTemplateDetails . Letter
106+ < PreviewTemplateDetailsLetter
99107 template = { {
100108 id : 'template-id' ,
101109 name : 'Example template' ,
102- templateStatus : 'SUBMITTED ' ,
110+ templateStatus : 'PENDING_VALIDATION ' ,
103111 templateType : 'LETTER' ,
104112 letterType : 'x0' ,
105113 language : 'fr' ,
@@ -119,26 +127,31 @@ describe('PreviewTemplateDetails component', () => {
119127 expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
120128 } ) ;
121129
122- it ( 'renders letter template when testPersonalisationInputFile is set ' , ( ) => {
130+ it ( 'matches snapshot when proofs are present, proofs failing virus scan are not displayed ' , ( ) => {
123131 const container = render (
124- < PreviewTemplateDetails . Letter
132+ < PreviewTemplateDetailsLetter
125133 template = { {
126134 id : 'template-id' ,
127- name : 'Example template ' ,
128- templateStatus : 'SUBMITTED ' ,
135+ name : 'Example letter ' ,
136+ templateStatus : 'PROOF_AVAILABLE ' ,
129137 templateType : 'LETTER' ,
130138 letterType : 'x0' ,
131- language : 'fr ' ,
139+ language : 'en ' ,
132140 files : {
133141 pdfTemplate : {
134142 fileName : 'file.pdf' ,
135143 currentVersion : '4C728B7D-A028-4BA2-B180-A63CDD2AE1E9' ,
136- virusScanStatus : 'PENDING ' ,
144+ virusScanStatus : 'PASSED ' ,
137145 } ,
138146 testDataCsv : {
139147 fileName : 'file.csv' ,
140148 currentVersion : '622AB7FA-29BA-418A-B1B6-1E63FB299269' ,
141- virusScanStatus : 'PENDING' ,
149+ virusScanStatus : 'PASSED' ,
150+ } ,
151+ proofs : {
152+ 'a.pdf' : { fileName : 'a.pdf' , virusScanStatus : 'PASSED' } ,
153+ 'b.pdf' : { fileName : 'b.pdf' , virusScanStatus : 'PASSED' } ,
154+ 'c.pdf' : { fileName : 'c.pdf' , virusScanStatus : 'FAILED' } ,
142155 } ,
143156 } ,
144157 createdAt : '2025-01-13T10:19:25.579Z' ,
@@ -150,70 +163,29 @@ describe('PreviewTemplateDetails component', () => {
150163 expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
151164 } ) ;
152165
153- it ( 'renders component correctly ' , ( ) => {
154- render (
155- < PreviewTemplateDetails
166+ it ( 'if status is PROOF_AVAILABLE, but no proofs are registered on the template, proof section is hidden (this is unexpected) ' , ( ) => {
167+ const container = render (
168+ < PreviewTemplateDetailsLetter
156169 template = { {
157170 id : 'template-id' ,
158- name : 'Example template' ,
159- message : 'app message message' ,
160- templateType : 'NHS_APP' ,
161- templateStatus : 'NOT_YET_SUBMITTED' ,
171+ name : 'Example letter' ,
172+ templateStatus : 'PROOF_AVAILABLE' ,
173+ templateType : 'LETTER' ,
174+ letterType : 'x0' ,
175+ language : 'en' ,
176+ files : {
177+ pdfTemplate : {
178+ fileName : 'file.pdf' ,
179+ currentVersion : '4C728B7D-A028-4BA2-B180-A63CDD2AE1E9' ,
180+ virusScanStatus : 'PASSED' ,
181+ } ,
182+ } ,
162183 createdAt : '2025-01-13T10:19:25.579Z' ,
163184 updatedAt : '2025-01-13T10:19:25.579Z' ,
164185 } }
165- templateTypeText = 'Channel template'
166- contentPreview = { [
167- {
168- heading : 'Subject' ,
169- id : 'subject' ,
170- value : 'Subject value' ,
171- } ,
172- {
173- heading : 'Heading' ,
174- id : 'heading' ,
175- value : 'Heading value' ,
176- } ,
177- {
178- heading : 'Body text' ,
179- id : 'body-text' ,
180- value : 'Body text value' ,
181- } ,
182- {
183- heading : 'Message' ,
184- id : 'message' ,
185- value : 'Message value' ,
186- } ,
187- ] }
188186 />
189187 ) ;
190188
191- expect ( screen . getByTestId ( 'preview-message__heading' ) ) . toHaveTextContent (
192- 'Example template'
193- ) ;
194- expect ( screen . getByTestId ( 'preview__heading-0' ) ) . toHaveTextContent (
195- 'Subject'
196- ) ;
197- expect ( screen . getByTestId ( 'preview__content-0' ) ) . toHaveTextContent (
198- 'Subject value'
199- ) ;
200- expect ( screen . getByTestId ( 'preview__heading-1' ) ) . toHaveTextContent (
201- 'Heading'
202- ) ;
203- expect ( screen . getByTestId ( 'preview__content-1' ) ) . toHaveTextContent (
204- 'Heading value'
205- ) ;
206- expect ( screen . getByTestId ( 'preview__heading-2' ) ) . toHaveTextContent (
207- 'Body text'
208- ) ;
209- expect ( screen . getByTestId ( 'preview__content-2' ) ) . toHaveTextContent (
210- 'Body text value'
211- ) ;
212- expect ( screen . getByTestId ( 'preview__heading-3' ) ) . toHaveTextContent (
213- 'Message'
214- ) ;
215- expect ( screen . getByTestId ( 'preview__content-3' ) ) . toHaveTextContent (
216- 'Message value'
217- ) ;
189+ expect ( container . asFragment ( ) ) . toMatchSnapshot ( ) ;
218190 } ) ;
219191} ) ;
0 commit comments