Skip to content

Commit bb26749

Browse files
committed
CCM-8601: hide test data row optionally
1 parent c97354e commit bb26749

File tree

7 files changed

+159
-15
lines changed

7 files changed

+159
-15
lines changed

frontend/src/__tests__/app/preview-letter-template/page.test.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ describe('PreviewLetterTemplatePage', () => {
103103
pdfTemplateInputFile: undefined as unknown as string,
104104
},
105105
{
106-
description: 'a letter lacking testPersonalisationInputFile',
107-
testPersonalisationInputFile: undefined as unknown as string,
106+
description:
107+
'a letter where testPersonalisationInputFile is the wrong data type',
108+
testPersonalisationInputFile: 9 as unknown as string,
108109
},
109110
])(
110111
'should redirect to invalid-template when template is $description',

frontend/src/__tests__/components/molecules/PreviewTemplate.test.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ describe('PreviewTemplate component', () => {
8282
expect(container.asFragment()).toMatchSnapshot();
8383
});
8484

85+
it('renders letter template when testPersonalisationInputFile is not set', () => {
86+
const container = render(
87+
<PreviewTemplate.Letter
88+
template={{
89+
id: 'template-id',
90+
name: 'Example template',
91+
templateStatus: TemplateStatus.SUBMITTED,
92+
templateType: TemplateType.LETTER,
93+
letterType: LetterType.STANDARD,
94+
language: Language.FRENCH,
95+
pdfTemplateInputFile: 'file.pdf',
96+
}}
97+
/>
98+
);
99+
100+
expect(container.asFragment()).toMatchSnapshot();
101+
});
102+
85103
it('renders component correctly', () => {
86104
render(
87105
<PreviewTemplate

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

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,122 @@ exports[`PreviewTemplate component matches submitted snapshot 1`] = `
214214
</DocumentFragment>
215215
`;
216216

217+
exports[`PreviewTemplate component renders letter template when testPersonalisationInputFile is not set 1`] = `
218+
<DocumentFragment>
219+
<h1
220+
class="review__heading"
221+
data-testid="preview-message__heading"
222+
>
223+
Example template
224+
</h1>
225+
<div
226+
class="nhsuk-width-container nhsuk-u-margin-bottom-6 nhsuk-body-m"
227+
>
228+
<div
229+
class="preview"
230+
>
231+
<div
232+
class="nhsuk-grid-row preview__row"
233+
>
234+
<div
235+
class="nhsuk-grid-column-one-third preview__col"
236+
>
237+
<div
238+
class="preview__col_heading"
239+
>
240+
Template ID
241+
</div>
242+
</div>
243+
<div
244+
class="nhsuk-grid-column-two-thirds col"
245+
>
246+
template-id
247+
</div>
248+
</div>
249+
<div
250+
class="nhsuk-grid-row preview__row"
251+
>
252+
<div
253+
class="nhsuk-grid-column-one-third preview__col"
254+
>
255+
<div
256+
class="preview__col_heading"
257+
>
258+
Type
259+
</div>
260+
</div>
261+
<div
262+
class="nhsuk-grid-column-two-thirds col"
263+
>
264+
Letter - French
265+
</div>
266+
</div>
267+
<div
268+
class="nhsuk-grid-row preview__row"
269+
>
270+
<div
271+
class="nhsuk-grid-column-one-third preview__col"
272+
>
273+
<div
274+
class="preview__col_heading"
275+
>
276+
Status
277+
</div>
278+
</div>
279+
<div
280+
class="nhsuk-grid-column-two-thirds col"
281+
>
282+
<strong
283+
class="nhsuk-tag nhsuk-tag--grey"
284+
>
285+
Submitted
286+
</strong>
287+
</div>
288+
</div>
289+
<div
290+
class="nhsuk-grid-row preview__row"
291+
>
292+
<div
293+
class="nhsuk-grid-column-one-third preview__col"
294+
>
295+
<div
296+
class="preview__col_heading"
297+
>
298+
Template file
299+
</div>
300+
</div>
301+
<div
302+
class="nhsuk-grid-column-two-thirds col"
303+
>
304+
<div
305+
class="container"
306+
>
307+
<svg
308+
class="icon"
309+
fill="none"
310+
height="26"
311+
viewBox="0 0 20 26"
312+
width="20"
313+
xmlns="http://www.w3.org/2000/svg"
314+
>
315+
<path
316+
d="M0 0V26H20V6.59375L19.7188 6.28125L13.7188 0.28125L13.4062 0H0ZM2 2H12V8H18V24H2V2ZM14 3.4375L16.5625 6H14V3.4375Z"
317+
fill="#4C6272"
318+
/>
319+
</svg>
320+
<p
321+
class="text"
322+
>
323+
file.pdf
324+
</p>
325+
</div>
326+
</div>
327+
</div>
328+
</div>
329+
</div>
330+
</DocumentFragment>
331+
`;
332+
217333
exports[`PreviewTemplate component renders without content preview 1`] = `
218334
<DocumentFragment>
219335
<h1

frontend/src/components/molecules/ManageTemplates/ManageTemplates.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,17 @@ const generateViewTemplateLink = (template: TemplateDTO): string => {
2626
return `/${previewTemplatePages(template.templateType)}/${template.id}`;
2727
};
2828

29-
const typeDisplayMappings = (template: TemplateDTO) =>
30-
template.templateType === TemplateType.LETTER &&
31-
'letterType' in template &&
32-
template.letterType &&
33-
'language' in template &&
34-
template.language
29+
const typeDisplayMappings = (template: TemplateDTO): string => {
30+
console.log(template);
31+
32+
return template.templateType === TemplateType.LETTER &&
33+
'letterType' in template &&
34+
template.letterType &&
35+
'language' in template &&
36+
template.language
3537
? letterTypeDisplayMappings(template.letterType, template.language)
3638
: templateTypeDisplayMappings(template.templateType);
39+
};
3740

3841
export function ManageTemplates({
3942
templateList,

frontend/src/components/molecules/PreviewTemplate/PreviewTemplate.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,17 @@ PreviewTemplate.Letter = ({ template }: { template: LetterTemplate }) => (
169169
id: 'templatefile',
170170
content: <Filename filename={template.pdfTemplateInputFile} />,
171171
},
172-
{
173-
title: 'Test personalisation file',
174-
id: 'testdatafile',
175-
content: <Filename filename={template.testPersonalisationInputFile} />,
176-
},
172+
...(template.testPersonalisationInputFile
173+
? [
174+
{
175+
title: 'Test personalisation file',
176+
id: 'testdatafile',
177+
content: (
178+
<Filename filename={template.testPersonalisationInputFile} />
179+
),
180+
},
181+
]
182+
: []),
177183
]}
178184
/>
179185
);

utils/utils/src/enum.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const languageMapping = (language: Language) =>
1616

1717
const letterTypeMapping = (letterType: LetterType) =>
1818
({
19-
[LetterType.AUDIO]: 'Audio',
19+
[LetterType.AUDIO]: 'Audio CD',
2020
[LetterType.BRAILLE]: 'Braille',
2121
[LetterType.BSL]: 'British Sign Language',
2222
[LetterType.STANDARD]: 'Standard',

utils/utils/src/zod-validators.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export const $LetterTemplate = $TemplateBase.extend({
5555
letterType: z.nativeEnum(LetterType),
5656
language: z.nativeEnum(Language),
5757
pdfTemplateInputFile: z.string(),
58-
testPersonalisationInputFile: z.string(),
58+
testPersonalisationInputFile: z.string().optional(),
5959
});
6060
const $SubmittedLetterTemplate = $LetterTemplate.extend({
6161
templateStatus: z.literal(TemplateStatus.SUBMITTED),

0 commit comments

Comments
 (0)