208 lines
5.2 KiB
JSON
Executable File
208 lines
5.2 KiB
JSON
Executable File
[
|
|
{
|
|
"description": "root pointer ref",
|
|
"schema": {
|
|
"properties": {
|
|
"foo": {
|
|
"$ref": "#"
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "match self",
|
|
"data": {
|
|
"foo": false
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "recursive match",
|
|
"data": {
|
|
"foo": {
|
|
"foo": false
|
|
}
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch",
|
|
"data": {
|
|
"bar": false
|
|
},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "recursive mismatch",
|
|
"data": {
|
|
"foo": {
|
|
"bar": false
|
|
}
|
|
},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "relative pointer ref to object",
|
|
"schema": {
|
|
"$id": "http://example.com/root.json",
|
|
"definitions": {
|
|
"foo": {
|
|
"type": "integer"
|
|
},
|
|
"bar": {
|
|
"$ref": "#/definitions/foo"
|
|
}
|
|
},
|
|
"$ref": "#/definitions/bar"
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "match integer",
|
|
"data": 1,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch string",
|
|
"data": "a",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "escaped pointer ref",
|
|
"schema": {
|
|
"$id": "http://example.com/tilda.json",
|
|
"definitions": {
|
|
"tilde~field": {
|
|
"type": "integer"
|
|
},
|
|
"slash/field": {
|
|
"type": "integer"
|
|
},
|
|
"percent%field": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"properties": {
|
|
"tilde": {
|
|
"$ref": "#/definitions/tilde~0field"
|
|
},
|
|
"slash": {
|
|
"$ref": "#/definitions/slash~1field"
|
|
},
|
|
"percent": {
|
|
"$ref": "#/definitions/percent%25field"
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "slash valid",
|
|
"data": {
|
|
"slash": 1
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "tilde valid",
|
|
"data": {
|
|
"tilde": 1
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "percent valid",
|
|
"data": {
|
|
"percent": 1
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "slash invalid",
|
|
"data": {
|
|
"slash": "a"
|
|
},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "nested refs",
|
|
"schema": {
|
|
"$id": "http://example.com/nested.json",
|
|
"definitions": {
|
|
"a": {
|
|
"type": "integer"
|
|
},
|
|
"b": {
|
|
"$ref": "#/definitions/a"
|
|
},
|
|
"c": {
|
|
"$ref": "#/definitions/b"
|
|
}
|
|
},
|
|
"$ref": "#/definitions/c"
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "nested match",
|
|
"data": 5,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "nested mismatch",
|
|
"data": "a",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "ref to array item",
|
|
"schema": {
|
|
"prefixItems": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"definitions": {
|
|
"first": {
|
|
"$ref": "#/prefixItems/0"
|
|
},
|
|
"second": {
|
|
"$ref": "#/prefixItems/1"
|
|
}
|
|
},
|
|
"properties": {
|
|
"a": {
|
|
"$ref": "#/definitions/first"
|
|
},
|
|
"b": {
|
|
"$ref": "#/definitions/second"
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid array items",
|
|
"data": {
|
|
"a": 1,
|
|
"b": "foo"
|
|
},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "invalid array items",
|
|
"data": {
|
|
"a": "foo",
|
|
"b": 1
|
|
},
|
|
"valid": false
|
|
}
|
|
]
|
|
}
|
|
] |