File tree Expand file tree Collapse file tree 3 files changed +25
-10
lines changed
backend-api/src/templates/app Expand file tree Collapse file tree 3 files changed +25
-10
lines changed Original file line number Diff line number Diff 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' ;
1616import {
@@ -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' , {
Original file line number Diff line number Diff line change 11import {
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 ) ;
Original file line number Diff line number Diff 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> ( ) (
You can’t perform that action at this time.
0 commit comments