284 lines
6.1 KiB
JSON
284 lines
6.1 KiB
JSON
[
|
|
{
|
|
"description": "basic dict type validation",
|
|
"database": {
|
|
"types": [
|
|
{
|
|
"name": "dict_basic",
|
|
"schemas": {
|
|
"dict_basic": {
|
|
"type": "dict"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid empty dict",
|
|
"data": {},
|
|
"schema_id": "dict_basic",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": true
|
|
}
|
|
},
|
|
{
|
|
"description": "valid simple dict",
|
|
"data": {
|
|
"key1": "value1",
|
|
"key2": 123,
|
|
"key3": true
|
|
},
|
|
"schema_id": "dict_basic",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": true
|
|
}
|
|
},
|
|
{
|
|
"description": "invalid type - array is not dict",
|
|
"data": [
|
|
"a",
|
|
"b"
|
|
],
|
|
"schema_id": "dict_basic",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "INVALID_TYPE",
|
|
"values": {
|
|
"expected": "dict"
|
|
},
|
|
"details": {
|
|
"path": "",
|
|
"schema": "dict_basic"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"description": "invalid type - string is not dict",
|
|
"data": "not a dict",
|
|
"schema_id": "dict_basic",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "INVALID_TYPE",
|
|
"values": {
|
|
"expected": "dict"
|
|
},
|
|
"details": {
|
|
"path": "",
|
|
"schema": "dict_basic"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "dict keys validation",
|
|
"database": {
|
|
"types": [
|
|
{
|
|
"name": "dict_keys",
|
|
"schemas": {
|
|
"dict_keys": {
|
|
"type": "dict",
|
|
"keys": {
|
|
"type": "string",
|
|
"pattern": "^[a-z]{3}$"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid 3-letter lowercase keys",
|
|
"data": {
|
|
"abc": 1,
|
|
"xyz": "test"
|
|
},
|
|
"schema_id": "dict_keys",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": true
|
|
}
|
|
},
|
|
{
|
|
"description": "invalid key format",
|
|
"data": {
|
|
"abc": 1,
|
|
"abcd": 2
|
|
},
|
|
"schema_id": "dict_keys",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "PATTERN_VIOLATED",
|
|
"values": {
|
|
"value": "abcd",
|
|
"pattern": "^[a-z]{3}$"
|
|
},
|
|
"details": {
|
|
"path": "keys/abcd",
|
|
"schema": "dict_keys"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "dict items (values) validation",
|
|
"database": {
|
|
"types": [
|
|
{
|
|
"name": "dict_items",
|
|
"schemas": {
|
|
"dict_items": {
|
|
"type": "dict",
|
|
"items": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid integer values",
|
|
"data": {
|
|
"a": 1,
|
|
"b": 100
|
|
},
|
|
"schema_id": "dict_items",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": true
|
|
}
|
|
},
|
|
{
|
|
"description": "invalid value type",
|
|
"data": {
|
|
"a": 1,
|
|
"b": "string value"
|
|
},
|
|
"schema_id": "dict_items",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "INVALID_TYPE",
|
|
"values": {
|
|
"expected": "integer"
|
|
},
|
|
"details": {
|
|
"path": "b",
|
|
"schema": "dict_items"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "dict keys and items validation combined",
|
|
"database": {
|
|
"types": [
|
|
{
|
|
"name": "dict_combined",
|
|
"schemas": {
|
|
"dict_combined": {
|
|
"type": "dict",
|
|
"keys": {
|
|
"type": "string",
|
|
"pattern": "^[0-9]+$"
|
|
},
|
|
"items": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid numeric keys and boolean values",
|
|
"data": {
|
|
"123": true,
|
|
"456": false
|
|
},
|
|
"schema_id": "dict_combined",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": true
|
|
}
|
|
},
|
|
{
|
|
"description": "invalid key and valid value",
|
|
"data": {
|
|
"123": true,
|
|
"abc": false
|
|
},
|
|
"schema_id": "dict_combined",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "PATTERN_VIOLATED",
|
|
"values": {
|
|
"pattern": "^[0-9]+$",
|
|
"value": "abc"
|
|
},
|
|
"details": {
|
|
"path": "keys/abc",
|
|
"schema": "dict_combined"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"description": "valid key and invalid value",
|
|
"data": {
|
|
"123": "not a boolean"
|
|
},
|
|
"schema_id": "dict_combined",
|
|
"action": "validate",
|
|
"expect": {
|
|
"success": false,
|
|
"errors": [
|
|
{
|
|
"code": "INVALID_TYPE",
|
|
"values": {
|
|
"expected": "boolean"
|
|
},
|
|
"details": {
|
|
"path": "123",
|
|
"schema": "dict_combined"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
] |