@@ -161,6 +161,55 @@ func Test_Validate(t *testing.T) {
161
161
},
162
162
},
163
163
}}, false },
164
+ {
165
+ "test not required nil filed" ,
166
+ args {
167
+ data : map [string ]any {
168
+ "name" : "John" ,
169
+ "age" : 28 ,
170
+ "email" : nil ,
171
+ },
172
+ schema : jsonschema.Definition {
173
+ Type : jsonschema .Object ,
174
+ Properties : map [string ]jsonschema.Definition {
175
+ "name" : {Type : jsonschema .String },
176
+ "age" : {Type : jsonschema .Integer },
177
+ "email" : {Type : jsonschema .String },
178
+ },
179
+ Required : []string {"name" , "age" },
180
+ },
181
+ },
182
+ true ,
183
+ },
184
+ {
185
+ "test not required nil object" ,
186
+ args {
187
+ data : map [string ]any {
188
+ "name" : "John" ,
189
+ "age" : 28 ,
190
+ "address" : nil ,
191
+ },
192
+ schema : jsonschema.Definition {
193
+ Type : jsonschema .Object ,
194
+ Properties : map [string ]jsonschema.Definition {
195
+ "name" : {Type : jsonschema .String },
196
+ "age" : {Type : jsonschema .Integer },
197
+ "address" : {
198
+ Type : jsonschema .Object ,
199
+ Properties : map [string ]jsonschema.Definition {
200
+ "street" : {Type : jsonschema .String },
201
+ "city" : {Type : jsonschema .String },
202
+ "state" : {Type : jsonschema .String },
203
+ "zip" : {Type : jsonschema .String },
204
+ },
205
+ Required : []string {"street" , "city" , "state" , "zip" },
206
+ },
207
+ },
208
+ Required : []string {"name" , "age" },
209
+ },
210
+ },
211
+ true ,
212
+ },
164
213
}
165
214
for _ , tt := range tests {
166
215
t .Run (tt .name , func (t * testing.T ) {
0 commit comments