1*97bd480fSBaptiste Daroussin[ 2*97bd480fSBaptiste Daroussin { 3*97bd480fSBaptiste Daroussin "description": 4*97bd480fSBaptiste Daroussin "additionalProperties being false does not allow other properties", 5*97bd480fSBaptiste Daroussin "schema": { 6*97bd480fSBaptiste Daroussin "properties": {"foo": {}, "bar": {}}, 7*97bd480fSBaptiste Daroussin "patternProperties": { "^v": {} }, 8*97bd480fSBaptiste Daroussin "additionalProperties": false 9*97bd480fSBaptiste Daroussin }, 10*97bd480fSBaptiste Daroussin "tests": [ 11*97bd480fSBaptiste Daroussin { 12*97bd480fSBaptiste Daroussin "description": "no additional properties is valid", 13*97bd480fSBaptiste Daroussin "data": {"foo": 1}, 14*97bd480fSBaptiste Daroussin "valid": true 15*97bd480fSBaptiste Daroussin }, 16*97bd480fSBaptiste Daroussin { 17*97bd480fSBaptiste Daroussin "description": "an additional property is invalid", 18*97bd480fSBaptiste Daroussin "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, 19*97bd480fSBaptiste Daroussin "valid": false 20*97bd480fSBaptiste Daroussin }, 21*97bd480fSBaptiste Daroussin { 22*97bd480fSBaptiste Daroussin "description": "ignores non-objects", 23*97bd480fSBaptiste Daroussin "data": [1, 2, 3], 24*97bd480fSBaptiste Daroussin "valid": true 25*97bd480fSBaptiste Daroussin }, 26*97bd480fSBaptiste Daroussin { 27*97bd480fSBaptiste Daroussin "description": "patternProperties are not additional properties", 28*97bd480fSBaptiste Daroussin "data": {"foo":1, "vroom": 2}, 29*97bd480fSBaptiste Daroussin "valid": true 30*97bd480fSBaptiste Daroussin } 31*97bd480fSBaptiste Daroussin ] 32*97bd480fSBaptiste Daroussin }, 33*97bd480fSBaptiste Daroussin { 34*97bd480fSBaptiste Daroussin "description": 35*97bd480fSBaptiste Daroussin "additionalProperties allows a schema which should validate", 36*97bd480fSBaptiste Daroussin "schema": { 37*97bd480fSBaptiste Daroussin "properties": {"foo": {}, "bar": {}}, 38*97bd480fSBaptiste Daroussin "additionalProperties": {"type": "boolean"} 39*97bd480fSBaptiste Daroussin }, 40*97bd480fSBaptiste Daroussin "tests": [ 41*97bd480fSBaptiste Daroussin { 42*97bd480fSBaptiste Daroussin "description": "no additional properties is valid", 43*97bd480fSBaptiste Daroussin "data": {"foo": 1}, 44*97bd480fSBaptiste Daroussin "valid": true 45*97bd480fSBaptiste Daroussin }, 46*97bd480fSBaptiste Daroussin { 47*97bd480fSBaptiste Daroussin "description": "an additional valid property is valid", 48*97bd480fSBaptiste Daroussin "data": {"foo" : 1, "bar" : 2, "quux" : true}, 49*97bd480fSBaptiste Daroussin "valid": true 50*97bd480fSBaptiste Daroussin }, 51*97bd480fSBaptiste Daroussin { 52*97bd480fSBaptiste Daroussin "description": "an additional invalid property is invalid", 53*97bd480fSBaptiste Daroussin "data": {"foo" : 1, "bar" : 2, "quux" : 12}, 54*97bd480fSBaptiste Daroussin "valid": false 55*97bd480fSBaptiste Daroussin } 56*97bd480fSBaptiste Daroussin ] 57*97bd480fSBaptiste Daroussin }, 58*97bd480fSBaptiste Daroussin { 59*97bd480fSBaptiste Daroussin "description": "additionalProperties are allowed by default", 60*97bd480fSBaptiste Daroussin "schema": {"properties": {"foo": {}, "bar": {}}}, 61*97bd480fSBaptiste Daroussin "tests": [ 62*97bd480fSBaptiste Daroussin { 63*97bd480fSBaptiste Daroussin "description": "additional properties are allowed", 64*97bd480fSBaptiste Daroussin "data": {"foo": 1, "bar": 2, "quux": true}, 65*97bd480fSBaptiste Daroussin "valid": true 66*97bd480fSBaptiste Daroussin } 67*97bd480fSBaptiste Daroussin ] 68*97bd480fSBaptiste Daroussin } 69*97bd480fSBaptiste Daroussin] 70