@@ -18,12 +18,16 @@ const schema = {
18
18
requiredNumber : Type . Number . required ,
19
19
boolean : Type . Boolean ,
20
20
requiredBoolean : Type . Boolean . required ,
21
+ date : Type . Date ,
22
+ requiredDate : Type . Date . required ,
21
23
arrayOfString : Type . Array . of ( Type . String ) ,
22
24
arrayOfNumber : Type . Array . of ( Type . Number ) ,
23
25
arrayOfBoolean : Type . Array . of ( Type . Boolean ) ,
26
+ arrayOfDate : Type . Array . of ( Type . Date ) ,
24
27
requiredArrayOfString : Type . Array . of ( Type . String ) . required ,
25
28
requiredArrayOfNumber : Type . Array . of ( Type . Number ) . required ,
26
29
requiredArrayOfBoolean : Type . Array . of ( Type . Boolean ) . required ,
30
+ requiredArrayOfDate : Type . Array . of ( Type . Date ) . required ,
27
31
} ;
28
32
29
33
const invalidDataErrors = [ {
@@ -44,6 +48,12 @@ const invalidDataErrors = [{
44
48
message : 'must have required property \'requiredBoolean\'' ,
45
49
params : { missingProperty : 'requiredBoolean' } ,
46
50
schemaPath : '#/required' ,
51
+ } , {
52
+ instancePath : '' ,
53
+ keyword : 'required' ,
54
+ message : 'must have required property \'requiredDate\'' ,
55
+ params : { missingProperty : 'requiredDate' } ,
56
+ schemaPath : '#/required' ,
47
57
} , {
48
58
instancePath : '/string' ,
49
59
keyword : 'type' ,
@@ -62,6 +72,12 @@ const invalidDataErrors = [{
62
72
message : 'must be boolean' ,
63
73
params : { type : 'boolean' } ,
64
74
schemaPath : '#/properties/boolean/type' ,
75
+ } , {
76
+ instancePath : '/date' ,
77
+ keyword : 'format' ,
78
+ message : 'must match format "iso-date-time"' ,
79
+ params : { format : 'iso-date-time' } ,
80
+ schemaPath : '#/properties/date/format' ,
65
81
} , {
66
82
instancePath : '/arrayOfString/0' ,
67
83
keyword : 'type' ,
@@ -80,6 +96,12 @@ const invalidDataErrors = [{
80
96
message : 'must be boolean' ,
81
97
params : { type : 'boolean' } ,
82
98
schemaPath : '#/properties/arrayOfBoolean/items/type' ,
99
+ } , {
100
+ instancePath : '/arrayOfDate/0' ,
101
+ keyword : 'format' ,
102
+ message : 'must match format "iso-date-time"' ,
103
+ params : { format : 'iso-date-time' } ,
104
+ schemaPath : '#/properties/arrayOfDate/items/format' ,
83
105
} , {
84
106
instancePath : '/requiredArrayOfString/0' ,
85
107
keyword : 'type' ,
@@ -98,6 +120,12 @@ const invalidDataErrors = [{
98
120
message : 'must be boolean' ,
99
121
params : { type : 'boolean' } ,
100
122
schemaPath : '#/properties/requiredArrayOfBoolean/items/type' ,
123
+ } , {
124
+ instancePath : '/requiredArrayOfDate/0' ,
125
+ keyword : 'format' ,
126
+ message : 'must match format "iso-date-time"' ,
127
+ params : { format : 'iso-date-time' } ,
128
+ schemaPath : '#/properties/requiredArrayOfDate/items/format' ,
101
129
} ] ;
102
130
103
131
test ( '.compile(schema) is an instance of CompiledSchema' , t => {
@@ -112,9 +140,11 @@ test('.compile(schema) has the given schema associated with it', t => {
112
140
'requiredString' ,
113
141
'requiredNumber' ,
114
142
'requiredBoolean' ,
143
+ 'requiredDate' ,
115
144
'requiredArrayOfString' ,
116
145
'requiredArrayOfNumber' ,
117
146
'requiredArrayOfBoolean' ,
147
+ 'requiredArrayOfDate' ,
118
148
] ,
119
149
properties : {
120
150
custom : {
@@ -131,12 +161,16 @@ test('.compile(schema) has the given schema associated with it', t => {
131
161
requiredNumber : { type : 'number' } ,
132
162
boolean : { type : 'boolean' } ,
133
163
requiredBoolean : { type : 'boolean' } ,
164
+ date : { type : 'string' , format : 'iso-date-time' } ,
165
+ requiredDate : { type : 'string' , format : 'iso-date-time' } ,
134
166
arrayOfString : { type : 'array' , items : { type : 'string' } } ,
135
167
arrayOfNumber : { type : 'array' , items : { type : 'number' } } ,
136
168
arrayOfBoolean : { type : 'array' , items : { type : 'boolean' } } ,
169
+ arrayOfDate : { type : 'array' , items : { type : 'string' , format : 'iso-date-time' } } ,
137
170
requiredArrayOfString : { type : 'array' , items : { type : 'string' } } ,
138
171
requiredArrayOfNumber : { type : 'array' , items : { type : 'number' } } ,
139
172
requiredArrayOfBoolean : { type : 'array' , items : { type : 'boolean' } } ,
173
+ requiredArrayOfDate : { type : 'array' , items : { type : 'string' , format : 'iso-date-time' } } ,
140
174
} ,
141
175
} ) ;
142
176
} ) ;
@@ -156,7 +190,7 @@ test('.compile(schema).validate(invalid) throws a ValidationError', t => {
156
190
) ;
157
191
158
192
t . is ( error . message , 'Validation failed' ) ;
159
- t . is ( error . data , invalid ) ;
193
+ t . deepEqual ( error . data , invalid ) ;
160
194
t . deepEqual ( error . errors , invalidDataErrors ) ;
161
195
} ) ;
162
196
@@ -169,9 +203,11 @@ test('.compile(MainModel) has the given schema associated with it', t => {
169
203
'requiredString' ,
170
204
'requiredNumber' ,
171
205
'requiredBoolean' ,
206
+ 'requiredDate' ,
172
207
'requiredArrayOfString' ,
173
208
'requiredArrayOfNumber' ,
174
209
'requiredArrayOfBoolean' ,
210
+ 'requiredArrayOfDate' ,
175
211
'requiredLinked' ,
176
212
] ,
177
213
properties : {
@@ -190,12 +226,16 @@ test('.compile(MainModel) has the given schema associated with it', t => {
190
226
requiredNumber : { type : 'number' } ,
191
227
boolean : { type : 'boolean' } ,
192
228
requiredBoolean : { type : 'boolean' } ,
229
+ date : { type : 'string' , format : 'iso-date-time' } ,
230
+ requiredDate : { type : 'string' , format : 'iso-date-time' } ,
193
231
arrayOfString : { type : 'array' , items : { type : 'string' } } ,
194
232
arrayOfNumber : { type : 'array' , items : { type : 'number' } } ,
195
233
arrayOfBoolean : { type : 'array' , items : { type : 'boolean' } } ,
234
+ arrayOfDate : { type : 'array' , items : { type : 'string' , format : 'iso-date-time' } } ,
196
235
requiredArrayOfString : { type : 'array' , items : { type : 'string' } } ,
197
236
requiredArrayOfNumber : { type : 'array' , items : { type : 'number' } } ,
198
237
requiredArrayOfBoolean : { type : 'array' , items : { type : 'boolean' } } ,
238
+ requiredArrayOfDate : { type : 'array' , items : { type : 'string' , format : 'iso-date-time' } } ,
199
239
requiredLinked : {
200
240
type : 'object' ,
201
241
additionalProperties : false ,
0 commit comments