datatestool/schemas/test-case.schema.json

46 lines
1.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["cases"],
"properties": {
"cases": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "table_name", "database_name", "fields", "category", "sql", "sample_sql", "sample_limit", "assertions"],
"properties": {
"name": {"type": "string"},
"table_name": {"type": "string"},
"database_name": {"type": "string"},
"fields": {"type": "array", "items": {"type": "string"}},
"category": {"type": "string"},
"sql": {"type": "string"},
"sample_sql": {"type": ["string", "null"]},
"sample_limit": {"type": "integer", "minimum": 1, "maximum": 1000},
"assertions": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["type", "actual", "expected", "minimum", "maximum"],
"properties": {
"type": {
"type": "string",
"enum": ["equals", "not_equals", "greater_than", "less_than", "between", "change_rate_between", "result_is_empty"]
},
"actual": {"type": ["string", "null"]},
"expected": {"type": ["string", "number", "boolean", "null"]},
"minimum": {"type": ["number", "null"]},
"maximum": {"type": ["number", "null"]}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}