[
{
"description"
:
"additionalProperties being false does not allow other properties"
,
"schema"
: {
"properties"
: {
"foo"
: {},
"bar"
: {}},
"patternProperties"
: {
"^v"
: {} },
"additionalProperties"
:
false
},
"tests"
: [
{
"description"
:
"no additional properties is valid"
,
"data"
: {
"foo"
: 1},
"valid"
:
true
},
{
"description"
:
"an additional property is invalid"
,
"data"
: {
"foo"
: 1,
"bar"
: 2,
"quux"
:
"boom"
},
"valid"
:
false
},
{
"description"
:
"ignores arrays"
,
"data"
: [1, 2, 3],
"valid"
:
true
},
{
"description"
:
"ignores strings"
,
"data"
:
"foobarbaz"
,
"valid"
:
true
},
{
"description"
:
"ignores other non-objects"
,
"data"
: 12,
"valid"
:
true
},
{
"description"
:
"patternProperties are not additional properties"
,
"data"
: {
"foo"
:1,
"vroom"
: 2},
"valid"
:
true
}
]
},
{
"description"
:
"non-ASCII pattern with additionalProperties"
,
"schema"
: {
"patternProperties"
: {
"^á"
: {}},
"additionalProperties"
:
false
},
"tests"
: [
{
"description"
:
"matching the pattern is valid"
,
"data"
: {
"ármányos"
: 2},
"valid"
:
true
},
{
"description"
:
"not matching the pattern is invalid"
,
"data"
: {
"élmény"
: 2},
"valid"
:
false
}
]
},
{
"description"
:
"additionalProperties with schema"
,
"schema"
: {
"properties"
: {
"foo"
: {},
"bar"
: {}},
"additionalProperties"
: {
"type"
:
"boolean"
}
},
"tests"
: [
{
"description"
:
"no additional properties is valid"
,
"data"
: {
"foo"
: 1},
"valid"
:
true
},
{
"description"
:
"an additional valid property is valid"
,
"data"
: {
"foo"
: 1,
"bar"
: 2,
"quux"
:
true
},
"valid"
:
true
},
{
"description"
:
"an additional invalid property is invalid"
,
"data"
: {
"foo"
: 1,
"bar"
: 2,
"quux"
: 12},
"valid"
:
false
}
]
},
{
"description"
:
"additionalProperties can exist by itself"
,
"schema"
: {
"additionalProperties"
: {
"type"
:
"boolean"
}
},
"tests"
: [
{
"description"
:
"an additional valid property is valid"
,
"data"
: {
"foo"
:
true
},
"valid"
:
true
},
{
"description"
:
"an additional invalid property is invalid"
,
"data"
: {
"foo"
: 1},
"valid"
:
false
}
]
},
{
"description"
:
"additionalProperties are allowed by default"
,
"schema"
: {
"properties"
: {
"foo"
: {},
"bar"
: {}}
},
"tests"
: [
{
"description"
:
"additional properties are allowed"
,
"data"
: {
"foo"
: 1,
"bar"
: 2,
"quux"
:
true
},
"valid"
:
true
}
]
},
{
"description"
:
"additionalProperties does not look in applicators"
,
"schema"
: {
"allOf"
: [
{
"properties"
: {
"foo"
: {}}}
],
"additionalProperties"
: {
"type"
:
"boolean"
}
},
"tests"
: [
{
"description"
:
"properties defined in allOf are not examined"
,
"data"
: {
"foo"
: 1,
"bar"
:
true
},
"valid"
:
false
}
]
},
{
"description"
:
"additionalProperties with null valued instance properties"
,
"schema"
: {
"additionalProperties"
: {
"type"
:
"null"
}
},
"tests"
: [
{
"description"
:
"allows null values"
,
"data"
: {
"foo"
:
null
},
"valid"
:
true
}
]
},
{
"description"
:
"additionalProperties with propertyNames"
,
"schema"
: {
"propertyNames"
: {
"maxLength"
: 5
},
"additionalProperties"
: {
"type"
:
"number"
}
},
"tests"
: [
{
"description"
:
"Valid against both keywords"
,
"data"
: {
"apple"
: 4 },
"valid"
:
true
},
{
"description"
:
"Valid against propertyNames, but not additionalProperties"
,
"data"
: {
"fig"
: 2,
"pear"
:
"available"
},
"valid"
:
false
}
]
},
{
"description"
:
"dependentSchemas with additionalProperties"
,
"schema"
: {
"properties"
: {
"foo2"
: {}},
"dependentSchemas"
: {
"foo"
: {},
"foo2"
: {
"properties"
: {
"bar"
:{}
}
}
},
"additionalProperties"
:
false
},
"tests"
: [
{
"description"
:
"additionalProperties doesn't consider dependentSchemas"
,
"data"
: {
"foo"
:
""
},
"valid"
:
false
},
{
"description"
:
"additionalProperties can't see bar"
,
"data"
: {
"bar"
:
""
},
"valid"
:
false
},
{
"description"
:
"additionalProperties can't see bar even when foo2 is present"
,
"data"
: {
"foo2"
:
""
,
"bar"
:
""
},
"valid"
:
false
}
]
}
]