cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2019-09/additionalProperties.json (about)

     1  [
     2  	{
     3  		"description": "additionalProperties being false does not allow other properties",
     4  		"schema": {
     5  			"$schema": "https://json-schema.org/draft/2019-09/schema",
     6  			"properties": {
     7  				"foo": {},
     8  				"bar": {}
     9  			},
    10  			"patternProperties": {
    11  				"^v": {}
    12  			},
    13  			"additionalProperties": false
    14  		},
    15  		"tests": [
    16  			{
    17  				"description": "no additional properties is valid",
    18  				"data": {
    19  					"foo": 1
    20  				},
    21  				"valid": true
    22  			},
    23  			{
    24  				"description": "an additional property is invalid",
    25  				"data": {
    26  					"foo": 1,
    27  					"bar": 2,
    28  					"quux": "boom"
    29  				},
    30  				"valid": false
    31  			},
    32  			{
    33  				"description": "ignores arrays",
    34  				"data": [
    35  					1,
    36  					2,
    37  					3
    38  				],
    39  				"valid": true
    40  			},
    41  			{
    42  				"description": "ignores strings",
    43  				"data": "foobarbaz",
    44  				"valid": true
    45  			},
    46  			{
    47  				"description": "ignores other non-objects",
    48  				"data": 12,
    49  				"valid": true
    50  			},
    51  			{
    52  				"description": "patternProperties are not additional properties",
    53  				"data": {
    54  					"foo": 1,
    55  					"vroom": 2
    56  				},
    57  				"valid": true
    58  			}
    59  		]
    60  	},
    61  	{
    62  		"description": "non-ASCII pattern with additionalProperties",
    63  		"schema": {
    64  			"$schema": "https://json-schema.org/draft/2019-09/schema",
    65  			"patternProperties": {
    66  				"^á": {}
    67  			},
    68  			"additionalProperties": false
    69  		},
    70  		"tests": [
    71  			{
    72  				"description": "matching the pattern is valid",
    73  				"data": {
    74  					"ármányos": 2
    75  				},
    76  				"valid": true
    77  			},
    78  			{
    79  				"description": "not matching the pattern is invalid",
    80  				"data": {
    81  					"élmény": 2
    82  				},
    83  				"valid": false
    84  			}
    85  		]
    86  	},
    87  	{
    88  		"description": "additionalProperties with schema",
    89  		"schema": {
    90  			"$schema": "https://json-schema.org/draft/2019-09/schema",
    91  			"properties": {
    92  				"foo": {},
    93  				"bar": {}
    94  			},
    95  			"additionalProperties": {
    96  				"type": "boolean"
    97  			}
    98  		},
    99  		"tests": [
   100  			{
   101  				"description": "no additional properties is valid",
   102  				"data": {
   103  					"foo": 1
   104  				},
   105  				"valid": true
   106  			},
   107  			{
   108  				"description": "an additional valid property is valid",
   109  				"data": {
   110  					"foo": 1,
   111  					"bar": 2,
   112  					"quux": true
   113  				},
   114  				"valid": true
   115  			},
   116  			{
   117  				"description": "an additional invalid property is invalid",
   118  				"data": {
   119  					"foo": 1,
   120  					"bar": 2,
   121  					"quux": 12
   122  				},
   123  				"valid": false
   124  			}
   125  		]
   126  	},
   127  	{
   128  		"description": "additionalProperties can exist by itself",
   129  		"schema": {
   130  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   131  			"additionalProperties": {
   132  				"type": "boolean"
   133  			}
   134  		},
   135  		"tests": [
   136  			{
   137  				"description": "an additional valid property is valid",
   138  				"data": {
   139  					"foo": true
   140  				},
   141  				"valid": true
   142  			},
   143  			{
   144  				"description": "an additional invalid property is invalid",
   145  				"data": {
   146  					"foo": 1
   147  				},
   148  				"valid": false
   149  			}
   150  		]
   151  	},
   152  	{
   153  		"description": "additionalProperties are allowed by default",
   154  		"schema": {
   155  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   156  			"properties": {
   157  				"foo": {},
   158  				"bar": {}
   159  			}
   160  		},
   161  		"tests": [
   162  			{
   163  				"description": "additional properties are allowed",
   164  				"data": {
   165  					"foo": 1,
   166  					"bar": 2,
   167  					"quux": true
   168  				},
   169  				"valid": true
   170  			}
   171  		]
   172  	},
   173  	{
   174  		"description": "additionalProperties does not look in applicators",
   175  		"schema": {
   176  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   177  			"allOf": [
   178  				{
   179  					"properties": {
   180  						"foo": {}
   181  					}
   182  				}
   183  			],
   184  			"additionalProperties": {
   185  				"type": "boolean"
   186  			}
   187  		},
   188  		"tests": [
   189  			{
   190  				"description": "properties defined in allOf are not examined",
   191  				"data": {
   192  					"foo": 1,
   193  					"bar": true
   194  				},
   195  				"valid": false
   196  			}
   197  		]
   198  	},
   199  	{
   200  		"description": "additionalProperties with null valued instance properties",
   201  		"schema": {
   202  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   203  			"additionalProperties": {
   204  				"type": "null"
   205  			}
   206  		},
   207  		"tests": [
   208  			{
   209  				"description": "allows null values",
   210  				"data": {
   211  					"foo": null
   212  				},
   213  				"valid": true
   214  			}
   215  		]
   216  	},
   217  	{
   218  		"description": "additionalProperties with propertyNames",
   219  		"schema": {
   220  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   221  			"propertyNames": {
   222  				"maxLength": 5
   223  			},
   224  			"additionalProperties": {
   225  				"type": "number"
   226  			}
   227  		},
   228  		"skip": {
   229  			"v2": "extract error: cannot compile resulting schema: reference \"strings\" in label expression refers to field against which it would be matched:\n    generated.cue:6:3\n",
   230  			"v3": "extract error: cannot compile resulting schema: reference \"strings\" in label expression refers to field against which it would be matched:\n    generated.cue:6:3\n"
   231  		},
   232  		"tests": [
   233  			{
   234  				"description": "Valid against both keywords",
   235  				"data": {
   236  					"apple": 4
   237  				},
   238  				"valid": true,
   239  				"skip": {
   240  					"v2": "could not compile schema",
   241  					"v3": "could not compile schema"
   242  				}
   243  			},
   244  			{
   245  				"description": "Valid against propertyNames, but not additionalProperties",
   246  				"data": {
   247  					"fig": 2,
   248  					"pear": "available"
   249  				},
   250  				"valid": false,
   251  				"skip": {
   252  					"v2": "could not compile schema",
   253  					"v3": "could not compile schema"
   254  				}
   255  			}
   256  		]
   257  	},
   258  	{
   259  		"description": "dependentSchemas with additionalProperties",
   260  		"schema": {
   261  			"$schema": "https://json-schema.org/draft/2019-09/schema",
   262  			"properties": {
   263  				"foo2": {}
   264  			},
   265  			"dependentSchemas": {
   266  				"foo": {},
   267  				"foo2": {
   268  					"properties": {
   269  						"bar": {}
   270  					}
   271  				}
   272  			},
   273  			"additionalProperties": false
   274  		},
   275  		"skip": {
   276  			"v2": "extract error: keyword \"dependentSchemas\" not yet implemented",
   277  			"v3": "extract error: keyword \"dependentSchemas\" not yet implemented"
   278  		},
   279  		"tests": [
   280  			{
   281  				"description": "additionalProperties doesn't consider dependentSchemas",
   282  				"data": {
   283  					"foo": ""
   284  				},
   285  				"valid": false,
   286  				"skip": {
   287  					"v2": "could not compile schema",
   288  					"v3": "could not compile schema"
   289  				}
   290  			},
   291  			{
   292  				"description": "additionalProperties can't see bar",
   293  				"data": {
   294  					"bar": ""
   295  				},
   296  				"valid": false,
   297  				"skip": {
   298  					"v2": "could not compile schema",
   299  					"v3": "could not compile schema"
   300  				}
   301  			},
   302  			{
   303  				"description": "additionalProperties can't see bar even when foo2 is present",
   304  				"data": {
   305  					"foo2": "",
   306  					"bar": ""
   307  				},
   308  				"valid": false,
   309  				"skip": {
   310  					"v2": "could not compile schema",
   311  					"v3": "could not compile schema"
   312  				}
   313  			}
   314  		]
   315  	}
   316  ]