validator refactor progress

This commit is contained in:
2026-03-03 00:13:37 -05:00
parent e14f53e7d9
commit 3898c43742
81 changed files with 6331 additions and 7934 deletions

View File

@ -1,11 +1,15 @@
[
{
"description": "ignore if without then or else",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"const": 0
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"const": 0
}
}
]
},
"tests": [
{
@ -22,11 +26,15 @@
},
{
"description": "ignore then without if",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"then": {
"const": 0
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"then": {
"const": 0
}
}
]
},
"tests": [
{
@ -43,11 +51,15 @@
},
{
"description": "ignore else without if",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"else": {
"const": 0
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"else": {
"const": 0
}
}
]
},
"tests": [
{
@ -64,14 +76,18 @@
},
{
"description": "if and then without else",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"then": {
"minimum": -10
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"then": {
"minimum": -10
}
}
]
},
"tests": [
{
@ -93,14 +109,18 @@
},
{
"description": "if and else without then",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"else": {
"multipleOf": 2
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"else": {
"multipleOf": 2
}
}
]
},
"tests": [
{
@ -122,17 +142,21 @@
},
{
"description": "validate against correct branch, then vs else",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"then": {
"minimum": -10
},
"else": {
"multipleOf": 2
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"exclusiveMaximum": 0
},
"then": {
"minimum": -10
},
"else": {
"multipleOf": 2
}
}
]
},
"tests": [
{
@ -159,23 +183,27 @@
},
{
"description": "non-interference across combined schemas",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
"database": {
"schemas": [
{
"if": {
"exclusiveMaximum": 0
}
},
{
"then": {
"minimum": -10
}
},
{
"else": {
"multipleOf": 2
}
"$schema": "https://json-schema.org/draft/2020-12/schema",
"allOf": [
{
"if": {
"exclusiveMaximum": 0
}
},
{
"then": {
"minimum": -10
}
},
{
"else": {
"multipleOf": 2
}
}
]
}
]
},
@ -194,15 +222,19 @@
},
{
"description": "if with boolean schema true",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": true,
"then": {
"const": "then"
},
"else": {
"const": "else"
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": true,
"then": {
"const": "then"
},
"else": {
"const": "else"
}
}
]
},
"tests": [
{
@ -219,15 +251,19 @@
},
{
"description": "if with boolean schema false",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": false,
"then": {
"const": "then"
},
"else": {
"const": "else"
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": false,
"then": {
"const": "then"
},
"else": {
"const": "else"
}
}
]
},
"tests": [
{
@ -244,17 +280,21 @@
},
{
"description": "if appears at the end when serialized (keyword processing sequence)",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"then": {
"const": "yes"
},
"else": {
"const": "other"
},
"if": {
"maxLength": 4
}
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"then": {
"const": "yes"
},
"else": {
"const": "other"
},
"if": {
"maxLength": 4
}
}
]
},
"tests": [
{
@ -281,11 +321,15 @@
},
{
"description": "then: false fails when condition matches",
"schema": {
"if": {
"const": 1
},
"then": false
"database": {
"schemas": [
{
"if": {
"const": 1
},
"then": false
}
]
},
"tests": [
{
@ -302,11 +346,15 @@
},
{
"description": "else: false fails when condition does not match",
"schema": {
"if": {
"const": 1
},
"else": false
"database": {
"schemas": [
{
"if": {
"const": 1
},
"else": false
}
]
},
"tests": [
{
@ -323,29 +371,33 @@
},
{
"description": "extensible: true allows extra properties in if-then-else",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"properties": {
"foo": {
"const": 1
}
},
"required": [
"foo"
]
},
"then": {
"properties": {
"bar": {
"const": 2
}
},
"required": [
"bar"
]
},
"extensible": true
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"properties": {
"foo": {
"const": 1
}
},
"required": [
"foo"
]
},
"then": {
"properties": {
"bar": {
"const": 2
}
},
"required": [
"bar"
]
},
"extensible": true
}
]
},
"tests": [
{
@ -361,25 +413,29 @@
},
{
"description": "strict by default with if-then properties",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"properties": {
"foo": {
"const": 1
}
},
"required": [
"foo"
]
},
"then": {
"properties": {
"bar": {
"const": 2
"database": {
"schemas": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"if": {
"properties": {
"foo": {
"const": 1
}
},
"required": [
"foo"
]
},
"then": {
"properties": {
"bar": {
"const": 2
}
}
}
}
}
]
},
"tests": [
{