Skip to content

Commit e83b5b8

Browse files
committed
CCM-8585: unit test
1 parent 2aaa1d0 commit e83b5b8

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

lambdas/backend-api/src/templates/app/template-client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
isTemplateDtoValid,
1111
LetterFiles,
1212
TemplateStatus,
13-
$CreateNonLetter,
13+
$CreateNonLetterSchema,
1414
$UpdateNonLetter,
1515
} from 'nhs-notify-backend-client';
1616
import {
@@ -36,7 +36,7 @@ export class TemplateClient implements ITemplateClient {
3636
): Promise<Result<TemplateDto>> {
3737
const log = logger.child({ template });
3838

39-
const validationResult = await validate($CreateNonLetter, template);
39+
const validationResult = await validate($CreateNonLetterSchema, template);
4040

4141
if (validationResult.error) {
4242
log.error('Request failed validation', {

lambdas/backend-client/src/__tests__/schemas/template-schema.test.ts

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
$CreateNonLetterSchema,
23
CreateTemplate,
34
isCreateTemplateValid,
45
isTemplateDtoValid,
@@ -150,6 +151,27 @@ describe('Template schemas', () => {
150151
}
151152
);
152153

154+
test('$CreateNonLetterSchema should fail when input is a letter', () => {
155+
const letter: CreateTemplate = {
156+
templateType: 'LETTER',
157+
letterType: 'q1',
158+
language: 'ar',
159+
name: 'letter',
160+
};
161+
162+
const result = $CreateNonLetterSchema.safeParse(letter);
163+
164+
expect(result.error?.flatten()).toEqual(
165+
expect.objectContaining({
166+
fieldErrors: {
167+
templateType: [
168+
"Invalid discriminator value. Expected 'NHS_APP' | 'EMAIL' | 'SMS'",
169+
],
170+
},
171+
})
172+
);
173+
});
174+
153175
test('$EmailTemplateFields - should fail validation, when no subject', async () => {
154176
const result = $CreateTemplateSchema.safeParse({
155177
name: 'Test Template',
@@ -218,13 +240,6 @@ describe('Template schemas', () => {
218240
templateType: 'LETTER',
219241
letterType: 'x0',
220242
language: 'en',
221-
files: {
222-
pdfTemplate: {
223-
fileName: 'template.pdf',
224-
currentVersion: '123',
225-
virusScanStatus: 'FAILED',
226-
},
227-
},
228243
},
229244
])('should pass validation %p', async (template) => {
230245
const result = $CreateTemplateSchema.safeParse(template);

lambdas/backend-client/src/schemas/template-schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export const $LetterPropertiesWithType = $LetterProperties.merge(
141141
z.object({ templateType: z.literal('LETTER') })
142142
);
143143

144-
export const $CreateNonLetter = schemaFor<
144+
export const $CreateNonLetterSchema = schemaFor<
145145
Exclude<CreateTemplate, { templateType: 'LETTER' }>,
146146
Exclude<ValidatedCreateTemplate, { templateType: 'LETTER' }>
147147
>()(

0 commit comments

Comments
 (0)