@@ -106,7 +106,7 @@ def test_addressNL_field_regex_pattern_success(self):
106
106
107
107
self .assertTrue (is_valid )
108
108
109
- def test_missing_keys (self ):
109
+ def test_missing_keys_when_component_optional (self ):
110
110
component : AddressNLComponent = {
111
111
"key" : "addressNl" ,
112
112
"type" : "addressNL" ,
@@ -129,6 +129,34 @@ def test_missing_keys(self):
129
129
self .assertEqual (postcode_error .code , "required" )
130
130
self .assertEqual (house_number_error .code , "required" )
131
131
132
+ def test_missing_keys_when_component_required (self ):
133
+ component : AddressNLComponent = {
134
+ "key" : "addressNl" ,
135
+ "type" : "addressNL" ,
136
+ "label" : "AddressNL missing keys" ,
137
+ "deriveAddress" : False ,
138
+ "validate" : {"required" : True },
139
+ }
140
+
141
+ invalid_values = {
142
+ "addressNl" : {
143
+ "houseLetter" : "A" ,
144
+ }
145
+ }
146
+
147
+ is_valid , errors = validate_formio_data (component , invalid_values )
148
+
149
+ postcode_error = extract_error (errors ["addressNl" ], "postcode" )
150
+ house_number_error = extract_error (errors ["addressNl" ], "houseNumber" )
151
+ street_name_error = extract_error (errors ["addressNl" ], "streetName" )
152
+ city_error = extract_error (errors ["addressNl" ], "city" )
153
+
154
+ self .assertFalse (is_valid )
155
+ self .assertEqual (postcode_error .code , "required" )
156
+ self .assertEqual (house_number_error .code , "required" )
157
+ self .assertEqual (street_name_error .code , "required" )
158
+ self .assertEqual (city_error .code , "required" )
159
+
132
160
def test_plugin_validator (self ):
133
161
with replace_validators_registry () as register :
134
162
register ("postcode_validator" )(PostcodeValidator )
@@ -150,6 +178,8 @@ def test_plugin_validator(self):
150
178
"houseNumber" : "3" ,
151
179
"houseLetter" : "A" ,
152
180
"houseNumberAddition" : "" ,
181
+ "streetName" : "Keizersgracht" ,
182
+ "city" : "Amsterdam" ,
153
183
}
154
184
},
155
185
)
@@ -176,7 +206,7 @@ def test_addressNL_field_secret_success(self):
176
206
"key" : "addressNl" ,
177
207
"type" : "addressNL" ,
178
208
"label" : "AddressNL secret success" ,
179
- "deriveAddress" : False ,
209
+ "deriveAddress" : True ,
180
210
}
181
211
182
212
message = "1015CJ/117/Amsterdam/Keizersgracht"
@@ -190,6 +220,7 @@ def test_addressNL_field_secret_success(self):
190
220
"city" : "Amsterdam" ,
191
221
"streetName" : "Keizersgracht" ,
192
222
"secretStreetCity" : secret ,
223
+ "autoPopulated" : True ,
193
224
}
194
225
}
195
226
@@ -214,6 +245,7 @@ def test_addressNL_field_secret_failure(self):
214
245
"city" : "Amsterdam" ,
215
246
"streetName" : "Keizersgracht" ,
216
247
"secretStreetCity" : "invalid secret" ,
248
+ "autoPopulated" : True ,
217
249
}
218
250
}
219
251
@@ -224,6 +256,32 @@ def test_addressNL_field_secret_failure(self):
224
256
self .assertFalse (is_valid )
225
257
self .assertEqual (secret_error .code , "invalid" )
226
258
259
+ def test_addressNL_field_secret_not_used_when_manual_address (self ):
260
+ component : AddressNLComponent = {
261
+ "key" : "addressNl" ,
262
+ "type" : "addressNL" ,
263
+ "label" : "AddressNL secret failure" ,
264
+ "deriveAddress" : True ,
265
+ "validate" : {"required" : False },
266
+ }
267
+
268
+ data = {
269
+ "addressNl" : {
270
+ "postcode" : "1015CJ" ,
271
+ "houseNumber" : "117" ,
272
+ "houseLetter" : "" ,
273
+ "houseNumberAddition" : "" ,
274
+ "city" : "Amsterdam" ,
275
+ "streetName" : "Keizersgracht" ,
276
+ "secretStreetCity" : "a secret" ,
277
+ "autoPopulated" : False ,
278
+ }
279
+ }
280
+
281
+ is_valid , _ = validate_formio_data (component , data )
282
+
283
+ self .assertTrue (is_valid )
284
+
227
285
def test_addressNL_field_missing_city (self ):
228
286
component : AddressNLComponent = {
229
287
"key" : "addressNl" ,
0 commit comments