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 ]