mirror of
				https://github.com/RetroDECK/ES-DE.git
				synced 2025-04-10 19:15:13 +00:00 
			
		
		
		
	
		
			
	
	
		
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
|   | [ | ||
|  |     { | ||
|  |         "description": | ||
|  |             "patternProperties validates properties matching a regex", | ||
|  |         "schema": { | ||
|  |             "patternProperties": { | ||
|  |                 "f.*o": {"type": "integer"} | ||
|  |             } | ||
|  |         }, | ||
|  |         "tests": [ | ||
|  |             { | ||
|  |                 "description": "a single valid match is valid", | ||
|  |                 "data": {"foo": 1}, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "multiple valid matches is valid", | ||
|  |                 "data": {"foo": 1, "foooooo" : 2}, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "a single invalid match is invalid", | ||
|  |                 "data": {"foo": "bar", "fooooo": 2}, | ||
|  |                 "valid": false | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "multiple invalid matches is invalid", | ||
|  |                 "data": {"foo": "bar", "foooooo" : "baz"}, | ||
|  |                 "valid": false | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "ignores non-objects", | ||
|  |                 "data": 12, | ||
|  |                 "valid": true | ||
|  |             } | ||
|  |         ] | ||
|  |     }, | ||
|  |     { | ||
|  |         "description": "multiple simultaneous patternProperties are validated", | ||
|  |         "schema": { | ||
|  |             "patternProperties": { | ||
|  |                 "a*": {"type": "integer"}, | ||
|  |                 "aaa*": {"maximum": 20} | ||
|  |             } | ||
|  |         }, | ||
|  |         "tests": [ | ||
|  |             { | ||
|  |                 "description": "a single valid match is valid", | ||
|  |                 "data": {"a": 21}, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "a simultaneous match is valid", | ||
|  |                 "data": {"aaaa": 18}, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "multiple matches is valid", | ||
|  |                 "data": {"a": 21, "aaaa": 18}, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "an invalid due to one is invalid", | ||
|  |                 "data": {"a": "bar"}, | ||
|  |                 "valid": false | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "an invalid due to the other is invalid", | ||
|  |                 "data": {"aaaa": 31}, | ||
|  |                 "valid": false | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "an invalid due to both is invalid", | ||
|  |                 "data": {"aaa": "foo", "aaaa": 31}, | ||
|  |                 "valid": false | ||
|  |             } | ||
|  |         ] | ||
|  |     }, | ||
|  |     { | ||
|  |         "description": "regexes are not anchored by default and are case sensitive", | ||
|  |         "schema": { | ||
|  |             "patternProperties": { | ||
|  |                 "[0-9]{2,}": { "type": "boolean" }, | ||
|  |                 "X_": { "type": "string" } | ||
|  |             } | ||
|  |         }, | ||
|  |         "tests": [ | ||
|  |             { | ||
|  |                 "description": "non recognized members are ignored", | ||
|  |                 "data": { "answer 1": "42" }, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "recognized members are accounted for", | ||
|  |                 "data": { "a31b": null }, | ||
|  |                 "valid": false | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "regexes are case sensitive", | ||
|  |                 "data": { "a_x_3": 3 }, | ||
|  |                 "valid": true | ||
|  |             }, | ||
|  |             { | ||
|  |                 "description": "regexes are case sensitive, 2", | ||
|  |                 "data": { "a_X_3": 3 }, | ||
|  |                 "valid": false | ||
|  |             } | ||
|  |         ] | ||
|  |     } | ||
|  | ] |