1[ 2 { 3 "description": "additionalItems as schema", 4 "schema": { 5 "items": [], 6 "additionalItems": {"type": "integer"} 7 }, 8 "tests": [ 9 { 10 "description": "additional items match schema", 11 "data": [ 1, 2, 3, 4 ], 12 "valid": true 13 }, 14 { 15 "description": "additional items do not match schema", 16 "data": [ 1, 2, 3, "foo" ], 17 "valid": false 18 } 19 ] 20 }, 21 { 22 "description": "when items is schema, additionalItems does nothing", 23 "schema": { 24 "items": {}, 25 "additionalItems": false 26 }, 27 "tests": [ 28 { 29 "description": "all items match schema", 30 "data": [ 1, 2, 3, 4, 5 ], 31 "valid": true 32 } 33 ] 34 }, 35 { 36 "description": "array of items with no additionalItems permitted", 37 "schema": { 38 "items": [{}, {}, {}], 39 "additionalItems": false 40 }, 41 "tests": [ 42 { 43 "description": "empty array", 44 "data": [ ], 45 "valid": true 46 }, 47 { 48 "description": "fewer number of items present (1)", 49 "data": [ 1 ], 50 "valid": true 51 }, 52 { 53 "description": "fewer number of items present (2)", 54 "data": [ 1, 2 ], 55 "valid": true 56 }, 57 { 58 "description": "equal number of items present", 59 "data": [ 1, 2, 3 ], 60 "valid": true 61 }, 62 { 63 "description": "additional items are not permitted", 64 "data": [ 1, 2, 3, 4 ], 65 "valid": false 66 } 67 ] 68 }, 69 { 70 "description": "additionalItems as false without items", 71 "schema": {"additionalItems": false}, 72 "tests": [ 73 { 74 "description": 75 "items defaults to empty schema so everything is valid", 76 "data": [ 1, 2, 3, 4, 5 ], 77 "valid": true 78 }, 79 { 80 "description": "ignores non-arrays", 81 "data": {"foo" : "bar"}, 82 "valid": true 83 } 84 ] 85 }, 86 { 87 "description": "additionalItems are allowed by default", 88 "schema": {"items": [{"type": "integer"}]}, 89 "tests": [ 90 { 91 "description": "only the first item is validated", 92 "data": [1, "foo", false], 93 "valid": true 94 } 95 ] 96 }, 97 { 98 "description": "additionalItems does not look in applicators", 99 "schema": { 100 "extends": [ 101 { "items": [ { "type": "integer" } ] } 102 ], 103 "additionalItems": { "type": "boolean" } 104 }, 105 "tests": [ 106 { 107 "description": "items defined in extends are not examined", 108 "data": [ 1, null ], 109 "valid": true 110 } 111 ] 112 }, 113 { 114 "description": "additionalItems with heterogeneous array", 115 "schema": { 116 "items": [{}], 117 "additionalItems": false 118 }, 119 "tests": [ 120 { 121 "description": "heterogeneous invalid instance", 122 "data": [ "foo", "bar", 37 ], 123 "valid": false 124 }, 125 { 126 "description": "valid instance", 127 "data": [ null ], 128 "valid": true 129 } 130 ] 131 }, 132 { 133 "description": "additionalItems with null instance elements", 134 "schema": { 135 "additionalItems": { 136 "type": "null" 137 } 138 }, 139 "tests": [ 140 { 141 "description": "allows null elements", 142 "data": [ null ], 143 "valid": true 144 } 145 ] 146 } 147] 148