github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft2020-12/required.json (about)

     1  [
     2      {
     3          "description": "required validation",
     4          "schema": {
     5              "$schema": "https://json-schema.org/draft/2020-12/schema",
     6              "properties": {
     7                  "foo": {},
     8                  "bar": {}
     9              },
    10              "required": ["foo"]
    11          },
    12          "tests": [
    13              {
    14                  "description": "present required property is valid",
    15                  "data": {"foo": 1},
    16                  "valid": true
    17              },
    18              {
    19                  "description": "non-present required property is invalid",
    20                  "data": {"bar": 1},
    21                  "valid": false
    22              },
    23              {
    24                  "description": "ignores arrays",
    25                  "data": [],
    26                  "valid": true
    27              },
    28              {
    29                  "description": "ignores strings",
    30                  "data": "",
    31                  "valid": true
    32              },
    33              {
    34                  "description": "ignores other non-objects",
    35                  "data": 12,
    36                  "valid": true
    37              }
    38          ]
    39      },
    40      {
    41          "description": "required default validation",
    42          "schema": {
    43              "$schema": "https://json-schema.org/draft/2020-12/schema",
    44              "properties": {
    45                  "foo": {}
    46              }
    47          },
    48          "tests": [
    49              {
    50                  "description": "not required by default",
    51                  "data": {},
    52                  "valid": true
    53              }
    54          ]
    55      },
    56      {
    57          "description": "required with empty array",
    58          "schema": {
    59              "$schema": "https://json-schema.org/draft/2020-12/schema",
    60              "properties": {
    61                  "foo": {}
    62              },
    63              "required": []
    64          },
    65          "tests": [
    66              {
    67                  "description": "property not required",
    68                  "data": {},
    69                  "valid": true
    70              }
    71          ]
    72      },
    73      {
    74          "description": "required with escaped characters",
    75          "schema": {
    76              "$schema": "https://json-schema.org/draft/2020-12/schema",
    77              "required": [
    78                  "foo\nbar",
    79                  "foo\"bar",
    80                  "foo\\bar",
    81                  "foo\rbar",
    82                  "foo\tbar",
    83                  "foo\fbar"
    84              ]
    85          },
    86          "tests": [
    87              {
    88                  "description": "object with all properties present is valid",
    89                  "data": {
    90                      "foo\nbar": 1,
    91                      "foo\"bar": 1,
    92                      "foo\\bar": 1,
    93                      "foo\rbar": 1,
    94                      "foo\tbar": 1,
    95                      "foo\fbar": 1
    96                  },
    97                  "valid": true
    98              },
    99              {
   100                  "description": "object with some properties missing is invalid",
   101                  "data": {
   102                      "foo\nbar": "1",
   103                      "foo\"bar": "1"
   104                  },
   105                  "valid": false
   106              }
   107          ]
   108      },
   109      {
   110          "description": "required properties whose names are Javascript object property names",
   111          "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.",
   112          "schema": {
   113              "$schema": "https://json-schema.org/draft/2020-12/schema",
   114              "required": ["__proto__", "toString", "constructor"]
   115          },
   116          "tests": [
   117              {
   118                  "description": "ignores arrays",
   119                  "data": [],
   120                  "valid": true
   121              },
   122              {
   123                  "description": "ignores other non-objects",
   124                  "data": 12,
   125                  "valid": true
   126              },
   127              {
   128                  "description": "none of the properties mentioned",
   129                  "data": {},
   130                  "valid": false
   131              },
   132              {
   133                  "description": "__proto__ present",
   134                  "data": { "__proto__": "foo" },
   135                  "valid": false
   136              },
   137              {
   138                  "description": "toString present",
   139                  "data": { "toString": { "length": 37 } },
   140                  "valid": false
   141              },
   142              {
   143                  "description": "constructor present",
   144                  "data": { "constructor": { "length": 37 } },
   145                  "valid": false
   146              },
   147              {
   148                  "description": "all present",
   149                  "data": { 
   150                      "__proto__": 12,
   151                      "toString": { "length": "foo" },
   152                      "constructor": 37
   153                  },
   154                  "valid": true
   155              }
   156          ]
   157      }
   158  ]