@@ -22,4 +22,158 @@ describe('Collection example', () => {
2222
2323 expect ( valid ) . toBeTruthy ( ) ;
2424 } ) ;
25+
26+ it ( 'should fail validation when providers processing expression is invalid' , async ( ) => {
27+ // given
28+ example . providers [ 0 ] [ 'processing:expression' ] = null ;
29+
30+ // when
31+ let valid = validate ( example ) ;
32+
33+ // then
34+ expect ( valid ) . toBeFalsy ( ) ;
35+ expect (
36+ validate . errors . some (
37+ ( error ) =>
38+ error . instancePath === '/providers/0/processing:expression'
39+ && error . message === 'must be object' ,
40+ )
41+ ) . toBeTruthy ( ) ;
42+ } ) ;
43+
44+ it ( 'should fail validation when asset processing expression is invalid' , async ( ) => {
45+ // given
46+ example . assets = {
47+ 'example' : {
48+ 'href' : 'https://example.org/file.xyz' ,
49+ 'processing:expression' : null ,
50+ }
51+ } ;
52+
53+ // when
54+ let valid = validate ( example ) ;
55+
56+ // then
57+ expect ( valid ) . toBeFalsy ( ) ;
58+ expect (
59+ validate . errors . some (
60+ ( error ) =>
61+ error . instancePath === '/assets/example/processing:expression'
62+ && error . message === 'must be object' ,
63+ )
64+ ) . toBeTruthy ( ) ;
65+ } ) ;
66+
67+ it ( 'should fail validation when item asset processing expression is invalid' , async ( ) => {
68+ // given
69+ example . item_assets = {
70+ 'example' : {
71+ 'href' : 'https://example.org/file.xyz' ,
72+ 'processing:expression' : null ,
73+ }
74+ } ;
75+
76+ // when
77+ let valid = validate ( example ) ;
78+
79+ // then
80+ expect ( valid ) . toBeFalsy ( ) ;
81+ expect (
82+ validate . errors . some (
83+ ( error ) =>
84+ error . instancePath === '/item_assets/example/processing:expression'
85+ && error . message === 'must be object' ,
86+ )
87+ ) . toBeTruthy ( ) ;
88+ } ) ;
89+
90+ it ( 'should fail validation when summary processing expression is invalid' , async ( ) => {
91+ // given
92+ example . summaries [ 'processing:expression' ] = null ;
93+
94+ // when
95+ let valid = validate ( example ) ;
96+
97+ // then
98+ expect ( valid ) . toBeFalsy ( ) ;
99+ expect (
100+ validate . errors . some (
101+ ( error ) =>
102+ error . instancePath === '/summaries/processing:expression'
103+ && error . message === 'must be array' ,
104+ )
105+ ) . toBeTruthy ( ) ;
106+ } ) ;
107+
108+ it ( 'should fail validation when summary processing facility is invalid' , async ( ) => {
109+ // given
110+ example . summaries [ 'processing:facility' ] = null ;
111+
112+ // when
113+ let valid = validate ( example ) ;
114+
115+ // then
116+ expect ( valid ) . toBeFalsy ( ) ;
117+ expect (
118+ validate . errors . some (
119+ ( error ) =>
120+ error . instancePath === '/summaries/processing:facility'
121+ && error . message === 'must be array' ,
122+ )
123+ ) . toBeTruthy ( ) ;
124+ } ) ;
125+
126+ it ( 'should fail validation when summary processing level is invalid' , async ( ) => {
127+ // given
128+ example . summaries [ 'processing:level' ] = null ;
129+
130+ // when
131+ let valid = validate ( example ) ;
132+
133+ // then
134+ expect ( valid ) . toBeFalsy ( ) ;
135+ expect (
136+ validate . errors . some (
137+ ( error ) =>
138+ error . instancePath === '/summaries/processing:level'
139+ && error . message === 'must be array' ,
140+ )
141+ ) . toBeTruthy ( ) ;
142+ } ) ;
143+
144+ it ( 'should fail validation when summary processing lineage is invalid' , async ( ) => {
145+ // given
146+ example . summaries [ 'processing:lineage' ] = null ;
147+
148+ // when
149+ let valid = validate ( example ) ;
150+
151+ // then
152+ expect ( valid ) . toBeFalsy ( ) ;
153+ expect (
154+ validate . errors . some (
155+ ( error ) =>
156+ error . instancePath === '/summaries/processing:lineage'
157+ && error . message === 'must be array' ,
158+ )
159+ ) . toBeTruthy ( ) ;
160+ } ) ;
161+
162+ it ( 'should fail validation when summary processing software is invalid' , async ( ) => {
163+ // given
164+ example . summaries [ 'processing:software' ] = null ;
165+
166+ // when
167+ let valid = validate ( example ) ;
168+
169+ // then
170+ expect ( valid ) . toBeFalsy ( ) ;
171+ expect (
172+ validate . errors . some (
173+ ( error ) =>
174+ error . instancePath === '/summaries/processing:software'
175+ && error . message === 'must be array' ,
176+ )
177+ ) . toBeTruthy ( ) ;
178+ } ) ;
25179} ) ;
0 commit comments