cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/patternProperties.json (about)

     1  [
     2  	{
     3  		"description": "patternProperties validates properties matching a regex",
     4  		"schema": {
     5  			"$schema": "https://json-schema.org/draft/2020-12/schema",
     6  			"patternProperties": {
     7  				"f.*o": {
     8  					"type": "integer"
     9  				}
    10  			}
    11  		},
    12  		"tests": [
    13  			{
    14  				"description": "a single valid match is valid",
    15  				"data": {
    16  					"foo": 1
    17  				},
    18  				"valid": true
    19  			},
    20  			{
    21  				"description": "multiple valid matches is valid",
    22  				"data": {
    23  					"foo": 1,
    24  					"foooooo": 2
    25  				},
    26  				"valid": true
    27  			},
    28  			{
    29  				"description": "a single invalid match is invalid",
    30  				"data": {
    31  					"foo": "bar",
    32  					"fooooo": 2
    33  				},
    34  				"valid": false
    35  			},
    36  			{
    37  				"description": "multiple invalid matches is invalid",
    38  				"data": {
    39  					"foo": "bar",
    40  					"foooooo": "baz"
    41  				},
    42  				"valid": false
    43  			},
    44  			{
    45  				"description": "ignores arrays",
    46  				"data": [
    47  					"foo"
    48  				],
    49  				"valid": true
    50  			},
    51  			{
    52  				"description": "ignores strings",
    53  				"data": "foo",
    54  				"valid": true
    55  			},
    56  			{
    57  				"description": "ignores other non-objects",
    58  				"data": 12,
    59  				"valid": true
    60  			}
    61  		]
    62  	},
    63  	{
    64  		"description": "multiple simultaneous patternProperties are validated",
    65  		"schema": {
    66  			"$schema": "https://json-schema.org/draft/2020-12/schema",
    67  			"patternProperties": {
    68  				"a*": {
    69  					"type": "integer"
    70  				},
    71  				"aaa*": {
    72  					"maximum": 20
    73  				}
    74  			}
    75  		},
    76  		"tests": [
    77  			{
    78  				"description": "a single valid match is valid",
    79  				"data": {
    80  					"a": 21
    81  				},
    82  				"valid": true
    83  			},
    84  			{
    85  				"description": "a simultaneous match is valid",
    86  				"data": {
    87  					"aaaa": 18
    88  				},
    89  				"valid": true
    90  			},
    91  			{
    92  				"description": "multiple matches is valid",
    93  				"data": {
    94  					"a": 21,
    95  					"aaaa": 18
    96  				},
    97  				"valid": true
    98  			},
    99  			{
   100  				"description": "an invalid due to one is invalid",
   101  				"data": {
   102  					"a": "bar"
   103  				},
   104  				"valid": false
   105  			},
   106  			{
   107  				"description": "an invalid due to the other is invalid",
   108  				"data": {
   109  					"aaaa": 31
   110  				},
   111  				"valid": false
   112  			},
   113  			{
   114  				"description": "an invalid due to both is invalid",
   115  				"data": {
   116  					"aaa": "foo",
   117  					"aaaa": 31
   118  				},
   119  				"valid": false
   120  			}
   121  		]
   122  	},
   123  	{
   124  		"description": "regexes are not anchored by default and are case sensitive",
   125  		"schema": {
   126  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   127  			"patternProperties": {
   128  				"[0-9]{2,}": {
   129  					"type": "boolean"
   130  				},
   131  				"X_": {
   132  					"type": "string"
   133  				}
   134  			}
   135  		},
   136  		"tests": [
   137  			{
   138  				"description": "non recognized members are ignored",
   139  				"data": {
   140  					"answer 1": "42"
   141  				},
   142  				"valid": true
   143  			},
   144  			{
   145  				"description": "recognized members are accounted for",
   146  				"data": {
   147  					"a31b": null
   148  				},
   149  				"valid": false
   150  			},
   151  			{
   152  				"description": "regexes are case sensitive",
   153  				"data": {
   154  					"a_x_3": 3
   155  				},
   156  				"valid": true
   157  			},
   158  			{
   159  				"description": "regexes are case sensitive, 2",
   160  				"data": {
   161  					"a_X_3": 3
   162  				},
   163  				"valid": false
   164  			}
   165  		]
   166  	},
   167  	{
   168  		"description": "patternProperties with boolean schemas",
   169  		"schema": {
   170  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   171  			"patternProperties": {
   172  				"f.*": true,
   173  				"b.*": false
   174  			}
   175  		},
   176  		"tests": [
   177  			{
   178  				"description": "object with property matching schema true is valid",
   179  				"data": {
   180  					"foo": 1
   181  				},
   182  				"valid": true
   183  			},
   184  			{
   185  				"description": "object with property matching schema false is invalid",
   186  				"data": {
   187  					"bar": 2
   188  				},
   189  				"valid": false
   190  			},
   191  			{
   192  				"description": "object with both properties is invalid",
   193  				"data": {
   194  					"foo": 1,
   195  					"bar": 2
   196  				},
   197  				"valid": false
   198  			},
   199  			{
   200  				"description": "object with a property matching both true and false is invalid",
   201  				"data": {
   202  					"foobar": 1
   203  				},
   204  				"valid": false
   205  			},
   206  			{
   207  				"description": "empty object is valid",
   208  				"data": {},
   209  				"valid": true
   210  			}
   211  		]
   212  	},
   213  	{
   214  		"description": "patternProperties with null valued instance properties",
   215  		"schema": {
   216  			"$schema": "https://json-schema.org/draft/2020-12/schema",
   217  			"patternProperties": {
   218  				"^.*bar$": {
   219  					"type": "null"
   220  				}
   221  			}
   222  		},
   223  		"tests": [
   224  			{
   225  				"description": "allows null values",
   226  				"data": {
   227  					"foobar": null
   228  				},
   229  				"valid": true
   230  			}
   231  		]
   232  	}
   233  ]