Path: blob/main/external/libucl/tests/schema/patternProperties.json
2066 views
[1{2"description":3"patternProperties validates properties matching a regex",4"schema": {5"patternProperties": {6"f.*o": {"type": "integer"}7}8},9"tests": [10{11"description": "a single valid match is valid",12"data": {"foo": 1},13"valid": true14},15{16"description": "multiple valid matches is valid",17"data": {"foo": 1, "foooooo" : 2},18"valid": true19},20{21"description": "a single invalid match is invalid",22"data": {"foo": "bar", "fooooo": 2},23"valid": false24},25{26"description": "a single invalid match is invalid",27"data": {"fooooo": 2, "foo": "bar"},28"valid": false29},30{31"description": "multiple invalid matches is invalid",32"data": {"foo": "bar", "foooooo" : "baz"},33"valid": false34},35{36"description": "ignores non-objects",37"data": 12,38"valid": true39}40]41},42{43"description": "multiple simultaneous patternProperties are validated",44"schema": {45"patternProperties": {46"a*": {"type": "integer"},47"aaa*": {"maximum": 20}48}49},50"tests": [51{52"description": "a single valid match is valid",53"data": {"a": 21},54"valid": true55},56{57"description": "a simultaneous match is valid",58"data": {"aaaa": 18},59"valid": true60},61{62"description": "multiple matches is valid",63"data": {"a": 21, "aaaa": 18},64"valid": true65},66{67"description": "an invalid due to one is invalid",68"data": {"a": "bar"},69"valid": false70},71{72"description": "an invalid due to the other is invalid",73"data": {"aaaa": 31},74"valid": false75},76{77"description": "an invalid due to both is invalid",78"data": {"aaa": "foo", "aaaa": 31},79"valid": false80}81]82},83{84"description": "regexes are not anchored by default and are case sensitive",85"schema": {86"patternProperties": {87"[0-9]{2,}": { "type": "boolean" },88"X_": { "type": "string" }89}90},91"tests": [92{93"description": "non recognized members are ignored",94"data": { "answer 1": "42" },95"valid": true96},97{98"description": "recognized members are accounted for",99"data": { "a31b": null },100"valid": false101},102{103"description": "regexes are case sensitive",104"data": { "a_x_3": 3 },105"valid": true106},107{108"description": "regexes are case sensitive, 2",109"data": { "a_X_3": 3 },110"valid": false111}112]113}114]115116117