github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft-next/additionalProperties.json (about)

     1  [
     2      {
     3          "description":
     4              "additionalProperties being false does not allow other properties",
     5          "schema": {
     6              "$schema": "https://json-schema.org/draft/next/schema",
     7              "properties": {"foo": {}, "bar": {}},
     8              "patternProperties": { "^v": {} },
     9              "additionalProperties": false
    10          },
    11          "tests": [
    12              {
    13                  "description": "no additional properties is valid",
    14                  "data": {"foo": 1},
    15                  "valid": true
    16              },
    17              {
    18                  "description": "an additional property is invalid",
    19                  "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
    20                  "valid": false
    21              },
    22              {
    23                  "description": "ignores arrays",
    24                  "data": [1, 2, 3],
    25                  "valid": true
    26              },
    27              {
    28                  "description": "ignores strings",
    29                  "data": "foobarbaz",
    30                  "valid": true
    31              },
    32              {
    33                  "description": "ignores other non-objects",
    34                  "data": 12,
    35                  "valid": true
    36              },
    37              {
    38                  "description": "patternProperties are not additional properties",
    39                  "data": {"foo":1, "vroom": 2},
    40                  "valid": true
    41              }
    42          ]
    43      },
    44      {
    45          "description": "non-ASCII pattern with additionalProperties",
    46          "schema": {
    47              "$schema": "https://json-schema.org/draft/next/schema",
    48              "patternProperties": {"^á": {}},
    49              "additionalProperties": false
    50          },
    51          "tests": [
    52              {
    53                  "description": "matching the pattern is valid",
    54                  "data": {"ármányos": 2},
    55                  "valid": true
    56              },
    57              {
    58                  "description": "not matching the pattern is invalid",
    59                  "data": {"élmény": 2},
    60                  "valid": false
    61              }
    62          ]
    63      },
    64      {
    65          "description": "additionalProperties with schema",
    66          "schema": {
    67              "$schema": "https://json-schema.org/draft/next/schema",
    68              "properties": {"foo": {}, "bar": {}},
    69              "additionalProperties": {"type": "boolean"}
    70          },
    71          "tests": [
    72              {
    73                  "description": "no additional properties is valid",
    74                  "data": {"foo": 1},
    75                  "valid": true
    76              },
    77              {
    78                  "description": "an additional valid property is valid",
    79                  "data": {"foo" : 1, "bar" : 2, "quux" : true},
    80                  "valid": true
    81              },
    82              {
    83                  "description": "an additional invalid property is invalid",
    84                  "data": {"foo" : 1, "bar" : 2, "quux" : 12},
    85                  "valid": false
    86              }
    87          ]
    88      },
    89      {
    90          "description":
    91              "additionalProperties can exist by itself",
    92          "schema": {
    93              "$schema": "https://json-schema.org/draft/next/schema",
    94              "additionalProperties": {"type": "boolean"}
    95          },
    96          "tests": [
    97              {
    98                  "description": "an additional valid property is valid",
    99                  "data": {"foo" : true},
   100                  "valid": true
   101              },
   102              {
   103                  "description": "an additional invalid property is invalid",
   104                  "data": {"foo" : 1},
   105                  "valid": false
   106              }
   107          ]
   108      },
   109      {
   110          "description": "additionalProperties are allowed by default",
   111          "schema": {
   112              "$schema": "https://json-schema.org/draft/next/schema",
   113              "properties": {"foo": {}, "bar": {}}
   114          },
   115          "tests": [
   116              {
   117                  "description": "additional properties are allowed",
   118                  "data": {"foo": 1, "bar": 2, "quux": true},
   119                  "valid": true
   120              }
   121          ]
   122      },
   123      {
   124          "description": "additionalProperties does not look in applicators",
   125          "schema": {
   126              "$schema": "https://json-schema.org/draft/next/schema",
   127              "allOf": [
   128                  {"properties": {"foo": {}}}
   129              ],
   130              "additionalProperties": {"type": "boolean"}
   131          },
   132          "tests": [
   133              {
   134                  "description": "properties defined in allOf are not examined",
   135                  "data": {"foo": 1, "bar": true},
   136                  "valid": false
   137              }
   138          ]
   139      },
   140      {
   141          "description": "additionalProperties with null valued instance properties",
   142          "schema": {
   143              "$schema": "https://json-schema.org/draft/next/schema",
   144              "additionalProperties": {
   145                  "type": "null"
   146              }
   147          },
   148          "tests": [
   149              {
   150                  "description": "allows null values",
   151                  "data": {"foo": null},
   152                  "valid": true
   153              }
   154          ]
   155      },
   156      {
   157          "description": "additionalProperties with propertyNames",
   158          "schema": {
   159              "$schema": "https://json-schema.org/draft/next/schema",
   160              "propertyNames": {
   161                  "maxLength": 5
   162              },
   163              "additionalProperties": {
   164                  "type": "number"
   165              }
   166          },
   167          "tests": [
   168              {
   169                  "description": "Valid against both keywords",
   170                  "data": { "apple": 4 },
   171                  "valid": true
   172              },
   173              {
   174                  "description": "Valid against propertyNames, but not additionalProperties",
   175                  "data": { "fig": 2, "pear": "available" },
   176                  "valid": false
   177              }
   178          ]
   179      },
   180      {
   181          "description": "propertyDependencies with additionalProperties",
   182          "schema": {
   183              "$schema": "https://json-schema.org/draft/next/schema",
   184              "properties" : {"foo2" : {}},
   185              "propertyDependencies": {
   186                  "foo" : {},
   187                  "foo2": {
   188                      "bar": {
   189                          "properties": {
   190                              "buz": {}
   191                          }
   192                      }
   193                  }
   194              },
   195              "additionalProperties": false
   196          },
   197          "tests": [
   198              {
   199                  "description": "additionalProperties doesn't consider propertyDependencies properties" , 
   200                  "data": {"foo": ""},
   201                  "valid": false
   202              },
   203              {
   204                  "description": "additionalProperties can't see buz even when foo2 is present",
   205                  "data": {"foo2": "bar", "buz": ""},
   206                  "valid": false
   207              },
   208              {
   209                  "description": "additionalProperties can't see buz",
   210                  "data": {"buz": ""},
   211                  "valid": false
   212              }
   213          ]
   214      },
   215      {
   216          "description": "dependentSchemas with additionalProperties",
   217          "schema": {
   218              "$schema": "https://json-schema.org/draft/next/schema",
   219              "properties": {"foo2": {}},
   220              "dependentSchemas": {
   221                  "foo": {},
   222                  "foo2": {
   223                      "properties": {
   224                          "bar": {}
   225                      }
   226                  }
   227              },
   228              "additionalProperties": false
   229          },
   230          "tests": [
   231              {
   232                  "description": "additionalProperties doesn't consider dependentSchemas",
   233                  "data": {"foo": ""},
   234                  "valid": false
   235              },
   236              {
   237                  "description": "additionalProperties can't see bar",
   238                  "data": {"bar": ""},
   239                  "valid": false
   240              },
   241              {
   242                  "description": "additionalProperties can't see bar even when foo2 is present",
   243                  "data": {"foo2": "", "bar": ""},
   244                  "valid": false
   245              }
   246          ]
   247      }
   248  ]