@@ -55,12 +55,11 @@ describe('@ngtools/json-schema', () => {
5555 } ) ;
5656
5757 expect ( proto . a instanceof Array ) . toBe ( true ) ;
58- expect ( proto . a ) . toEqual ( [ undefined , 'v1' , undefined , 'v3' ] ) ;
58+ expect ( proto . a ) . toEqual ( [ 'v1' , 'v3' ] ) ;
5959
6060 // Set it to a string, which is valid.
6161 proto . a [ 0 ] = 'v2' ;
62- proto . a [ 1 ] = 'INVALID' ;
63- expect ( proto . a ) . toEqual ( [ 'v2' , undefined , undefined , 'v3' ] ) ;
62+ expect ( proto . a ) . toEqual ( [ 'v2' , 'v3' ] ) ;
6463 } ) ;
6564
6665 it ( 'supports default values' , ( ) => {
@@ -72,6 +71,23 @@ describe('@ngtools/json-schema', () => {
7271
7372 expect ( schema . children [ 'b' ] . get ( ) ) . toEqual ( 'default' ) ;
7473 } ) ;
74+
75+
76+ it ( 'should throw error when setting invalid value' , ( ) => {
77+ const proto : any = Object . create ( null ) ;
78+ // tslint:disable-next-line
79+ new RootSchemaTreeNode ( proto , {
80+ value : valueJson ,
81+ schema : schemaJson
82+ } ) ;
83+
84+ try {
85+ proto . a [ 0 ] = 'INVALID' ;
86+ } catch ( error ) {
87+ expect ( error . message ) . toBe ( 'Invalid value can only be one of these: v1,v2,v3' ) ;
88+ }
89+ } ) ;
90+
7591 } ) ;
7692
7793} ) ;
0 commit comments