jspg checkpoint
This commit is contained in:
284
fixtures/dict.json
Normal file
284
fixtures/dict.json
Normal file
@ -0,0 +1,284 @@
|
||||
[
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user