1[ 2 { 3 "description": "required validation", 4 "schema": { 5 "properties": { 6 "foo": {}, 7 "bar": {} 8 }, 9 "required": ["foo"] 10 }, 11 "tests": [ 12 { 13 "description": "present required property is valid", 14 "data": {"foo": 1}, 15 "valid": true 16 }, 17 { 18 "description": "non-present required property is invalid", 19 "data": {"bar": 1}, 20 "valid": false 21 }, 22 { 23 "description": "ignores arrays", 24 "data": [], 25 "valid": true 26 }, 27 { 28 "description": "ignores strings", 29 "data": "", 30 "valid": true 31 }, 32 { 33 "description": "ignores other non-objects", 34 "data": 12, 35 "valid": true 36 } 37 ] 38 }, 39 { 40 "description": "required default validation", 41 "schema": { 42 "properties": { 43 "foo": {} 44 } 45 }, 46 "tests": [ 47 { 48 "description": "not required by default", 49 "data": {}, 50 "valid": true 51 } 52 ] 53 }, 54 { 55 "description": "required with empty array", 56 "schema": { 57 "properties": { 58 "foo": {} 59 }, 60 "required": [] 61 }, 62 "tests": [ 63 { 64 "description": "property not required", 65 "data": {}, 66 "valid": true 67 } 68 ] 69 }, 70 { 71 "description": "required with escaped characters", 72 "schema": { 73 "required": [ 74 "foo\nbar", 75 "foo\"bar", 76 "foo\\bar", 77 "foo\rbar", 78 "foo\tbar", 79 "foo\fbar" 80 ] 81 }, 82 "tests": [ 83 { 84 "description": "object with all properties present is valid", 85 "data": { 86 "foo\nbar": 1, 87 "foo\"bar": 1, 88 "foo\\bar": 1, 89 "foo\rbar": 1, 90 "foo\tbar": 1, 91 "foo\fbar": 1 92 }, 93 "valid": true 94 }, 95 { 96 "description": "object with some properties missing is invalid", 97 "data": { 98 "foo\nbar": "1", 99 "foo\"bar": "1" 100 }, 101 "valid": false 102 } 103 ] 104 } 105] 106