Files
metabuilder/packages/schema_editor/seed/scripts/tests/table_operations.cases.json
2025-12-30 14:13:13 +00:00

211 lines
4.3 KiB
JSON

{
"create": [
{
"desc": "Creates empty table",
"name": "users",
"fields": null,
"expected_fields_count": 0
},
{
"desc": "Creates table with single field",
"name": "posts",
"fields": [
{
"name": "id",
"type": "integer"
}
],
"expected_fields_count": 1
},
{
"desc": "Creates table with multiple fields",
"name": "products",
"fields": [
{
"name": "id",
"type": "integer"
},
{
"name": "name",
"type": "string"
},
{
"name": "price",
"type": "float"
},
{
"name": "in_stock",
"type": "boolean"
}
],
"expected_fields_count": 4
},
{
"desc": "Creates table with complex fields",
"name": "orders",
"fields": [
{
"name": "id",
"type": "integer"
},
{
"name": "user_id",
"type": "integer"
},
{
"name": "created_at",
"type": "datetime"
},
{
"name": "total",
"type": "float"
},
{
"name": "metadata",
"type": "json"
}
],
"expected_fields_count": 5
}
],
"render": [
{
"desc": "Renders table with no fields",
"input": {
"name": "categories",
"fields": []
},
"expected_name": "categories",
"expected_fields_count": 0
},
{
"desc": "Renders user table",
"input": {
"name": "users",
"fields": [
{
"name": "id",
"type": "integer"
},
{
"name": "username",
"type": "string"
},
{
"name": "email",
"type": "string"
}
]
},
"expected_name": "users",
"expected_fields_count": 3
},
{
"desc": "Renders complex table",
"input": {
"name": "articles",
"fields": [
{
"name": "id",
"type": "integer"
},
{
"name": "title",
"type": "string"
},
{
"name": "content",
"type": "text"
},
{
"name": "author_id",
"type": "integer"
},
{
"name": "published_at",
"type": "datetime"
},
{
"name": "is_draft",
"type": "boolean"
}
]
},
"expected_name": "articles",
"expected_fields_count": 6
}
],
"add_field": [
{
"desc": "Adds string field",
"table_name": "users",
"field": {
"name": "nickname",
"type": "string"
}
},
{
"desc": "Adds integer field",
"table_name": "products",
"field": {
"name": "stock_count",
"type": "integer"
}
},
{
"desc": "Adds boolean field",
"table_name": "posts",
"field": {
"name": "is_published",
"type": "boolean"
}
},
{
"desc": "Adds datetime field",
"table_name": "users",
"field": {
"name": "last_login",
"type": "datetime"
}
},
{
"desc": "Adds text field",
"table_name": "comments",
"field": {
"name": "content",
"type": "text"
}
},
{
"desc": "Adds JSON field",
"table_name": "settings",
"field": {
"name": "preferences",
"type": "json"
}
}
],
"remove_field": [
{
"desc": "Removes field from users table",
"table_name": "users",
"field_name": "nickname"
},
{
"desc": "Removes field from posts table",
"table_name": "posts",
"field_name": "draft"
},
{
"desc": "Removes deprecated field",
"table_name": "products",
"field_name": "old_price"
},
{
"desc": "Removes temporary field",
"table_name": "orders",
"field_name": "temp_data"
}
]
}