@hyperjump/json-schema
Version:
A JSON Schema validator with support for custom keywords, vocabularies, and dialects
463 lines (462 loc) • 12 kB
JSON
[
{
"description": "itemPattern ``",
"schema": {
"itemPattern": []
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": true
},
{
"description": "a",
"data": ["a"],
"valid": false
}
]
},
{
"description": "itemPattern `a`",
"schema": {
"itemPattern": [
{ "const": "a" }
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "a",
"data": ["a"],
"valid": true
},
{
"description": "b",
"data": ["b"],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": false
}
]
},
{
"description": "itemPattern `ab`",
"schema": {
"itemPattern": [
{ "const": "a" },
{ "const": "b" }
]
},
"tests": [
{
"description": "a",
"data": ["a"],
"valid": false
},
{
"description": "aa",
"data": ["a", "a"],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
}
]
},
{
"description": "itemPattern `a+b`",
"schema": {
"itemPattern": [
{ "const": "a" }, "+",
{ "const": "b" }
]
},
"tests": [
{
"description": "b",
"data": ["b"],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "aab",
"data": ["a", "a", "b"],
"valid": true
},
{
"description": "aaab",
"data": ["a", "a", "a", "b"],
"valid": true
}
]
},
{
"description": "itemPattern `a*b`",
"schema": {
"itemPattern": [
{ "const": "a" }, "*",
{ "const": "b" }
]
},
"tests": [
{
"description": "b",
"data": ["b"],
"valid": true
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "aab",
"data": ["a", "a", "b"],
"valid": true
},
{
"description": "aaab",
"data": ["a", "a", "a", "b"],
"valid": true
}
]
},
{
"description": "itemPattern `(ab)+`",
"schema": {
"itemPattern": [
[
{ "const": "a" },
{ "const": "b" }
], "+"
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "a",
"data": ["a"],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "aba",
"data": ["a", "b", "a"],
"valid": false
},
{
"description": "abab",
"data": ["a", "b", "a", "b"],
"valid": true
},
{
"description": "ababa",
"data": ["a", "b", "a", "b", "a"],
"valid": false
}
]
},
{
"description": "itemPattern `a(b+c)*`",
"schema": {
"itemPattern": [
{ "const": "a" },
[
{ "const": "b" }, "+",
{ "const": "c" }
], "*"
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "a",
"data": ["a"],
"valid": true
},
{
"description": "ab",
"data": ["a", "b"],
"valid": false
},
{
"description": "abc",
"data": ["a", "b", "c"],
"valid": true
},
{
"description": "abbc",
"data": ["a", "b", "b", "c"],
"valid": true
},
{
"description": "abbbc",
"data": ["a", "b", "b", "b", "c"],
"valid": true
},
{
"description": "abcbc",
"data": ["a", "b", "c", "b", "c"],
"valid": true
},
{
"description": "abcb",
"data": ["a", "b", "c", "b"],
"valid": false
},
{
"description": "abbcbc",
"data": ["a", "b", "b", "c", "b", "c"],
"valid": true
},
{
"description": "abcbbc",
"data": ["a", "b", "c", "b", "b", "c"],
"valid": true
},
{
"description": "abbcbbc",
"data": ["a", "b", "b", "c", "b", "b", "c"],
"valid": true
},
{
"description": "abbcbbcb",
"data": ["a", "b", "b", "c", "b", "b", "c", "b"],
"valid": false
}
]
},
{
"description": "itemPattern `(abc)*abd`",
"schema": {
"itemPattern": [
[
{ "const": "a" },
{ "const": "b" },
{ "const": "c" }
], "*",
{ "const": "a" },
{ "const": "b" },
{ "const": "d" }
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "abc",
"data": ["a", "b", "c"],
"valid": false
},
{
"description": "abd",
"data": ["a", "b", "d"],
"valid": true
},
{
"description": "abcabd",
"data": ["a", "b", "c", "a", "b", "d"],
"valid": true
},
{
"description": "abcabcabd",
"data": ["a", "b", "c", "a", "b", "c", "a", "b", "d"],
"valid": true
},
{
"description": "abcabcabda",
"data": ["a", "b", "c", "a", "b", "c", "a", "b", "d", "a"],
"valid": false
}
]
},
{
"description": "itemPattern `(ab|bd)+`",
"schema": {
"itemPattern": [
[
{ "const": "a" },
{ "const": "b" },
"|",
{ "const": "c" },
{ "const": "d" }
], "+"
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "cd",
"data": ["c", "d"],
"valid": true
},
{
"description": "abab",
"data": ["a", "b", "a", "b"],
"valid": true
},
{
"description": "abcd",
"data": ["a", "b", "c", "d"],
"valid": true
},
{
"description": "abc",
"data": ["a", "b", "c"],
"valid": false
}
]
},
{
"description": "itemPattern `ab?|c`",
"schema": {
"itemPattern": [
{ "const": "a" },
{ "const": "b" }, "?",
"|",
{ "const": "c" }
]
},
"tests": [
{
"description": "a",
"data": ["a"],
"valid": true
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "c",
"data": ["c"],
"valid": true
},
{
"description": "ac",
"data": ["a", "c"],
"valid": false
}
]
},
{
"description": "itemPattern `a*(ab)+`",
"schema": {
"itemPattern": [
{ "const": "a" }, "*",
[
{ "const": "a" },
{ "const": "b" }
], "+"
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "a",
"data": ["a"],
"valid": false
},
{
"description": "ab",
"data": ["a", "b"],
"valid": true
},
{
"description": "aab",
"data": ["a", "a", "b"],
"valid": true
},
{
"description": "aabab",
"data": ["a", "a", "b", "a", "b"],
"valid": true
},
{
"description": "aaab",
"data": ["a", "a", "a", "b"],
"valid": true
}
]
},
{
"description": "itemPattern `(a+)+`",
"schema": {
"itemPattern": [
[
{ "const": "a" }, "+"
], "+"
]
},
"tests": [
{
"description": "*empty*",
"data": [],
"valid": false
},
{
"description": "a",
"data": ["a"],
"valid": true
},
{
"description": "aa",
"data": ["a", "a"],
"valid": true
},
{
"description": "aaaaaaaaaaaaaaaa",
"data": ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"],
"valid": true
},
{
"description": "aaaaaaaaaaaaaaaaX",
"data": ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "X"],
"valid": false
}
]
}
]