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