From 2985826a7bf093dd8dba01befeb7d9e188d3384d Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Tue, 30 Dec 2025 01:48:48 +0000 Subject: [PATCH] feat: add validation tests and cases for ui_header and ui_home packages --- .../seed/scripts/tests/components.cases.json | 6 +++ .../seed/scripts/tests/components.test.lua | 21 ++++++++++ .../seed/scripts/tests/metadata.cases.json | 24 +++++++++++ .../seed/scripts/tests/metadata.test.lua | 38 +++++++++++++++++ .../seed/scripts/tests/metadata.cases.json | 24 +++++++++++ .../seed/scripts/tests/metadata.test.lua | 41 +++++++++++++++++++ 6 files changed, 154 insertions(+) create mode 100644 packages/ui_header/seed/scripts/tests/components.cases.json create mode 100644 packages/ui_header/seed/scripts/tests/components.test.lua create mode 100644 packages/ui_header/seed/scripts/tests/metadata.cases.json create mode 100644 packages/ui_header/seed/scripts/tests/metadata.test.lua create mode 100644 packages/ui_home/seed/scripts/tests/metadata.cases.json create mode 100644 packages/ui_home/seed/scripts/tests/metadata.test.lua diff --git a/packages/ui_header/seed/scripts/tests/components.cases.json b/packages/ui_header/seed/scripts/tests/components.cases.json new file mode 100644 index 000000000..2a8086898 --- /dev/null +++ b/packages/ui_header/seed/scripts/tests/components.cases.json @@ -0,0 +1,6 @@ +{ + "component_fields": [ + { "field": "id", "type": "string", "desc": "unique identifier" }, + { "field": "type", "type": "string", "desc": "component type" } + ] +} diff --git a/packages/ui_header/seed/scripts/tests/components.test.lua b/packages/ui_header/seed/scripts/tests/components.test.lua new file mode 100644 index 000000000..a814639c6 --- /dev/null +++ b/packages/ui_header/seed/scripts/tests/components.test.lua @@ -0,0 +1,21 @@ +-- Component validation tests for ui_header package +-- Uses lua_test framework + +describe("App Header Components", function() + local components = load_cases("components.json") + + it("should be a valid array", function() + expect(components).toBeType("table") + end) + + it("should have valid component structure if components exist", function() + if #components > 0 then + for _, component in ipairs(components) do + expect(component.id).toBeTruthy() + expect(component.type).toBeTruthy() + expect(component.id).toBeType("string") + expect(component.type).toBeType("string") + end + end + end) +end) diff --git a/packages/ui_header/seed/scripts/tests/metadata.cases.json b/packages/ui_header/seed/scripts/tests/metadata.cases.json new file mode 100644 index 000000000..050cfc2e4 --- /dev/null +++ b/packages/ui_header/seed/scripts/tests/metadata.cases.json @@ -0,0 +1,24 @@ +{ + "package_id_validation": [ + { "pattern": "^[a-z_]+$", "desc": "lowercase with underscores only" } + ], + "version_validation": [ + { "pattern": "^%d+%.%d+%.%d+$", "desc": "semantic version format" } + ], + "required_fields": [ + { "field": "packageId", "desc": "package identifier" }, + { "field": "name", "desc": "display name" }, + { "field": "version", "desc": "version string" }, + { "field": "description", "desc": "package description" } + ], + "required_dependencies": [ + { "dep": "ui_permissions", "desc": "permission handling" } + ], + "export_types": [ + { "type": "components", "desc": "component exports" }, + { "type": "scripts", "desc": "lua script exports" } + ], + "expected_components": [ + { "name": "AppHeader", "desc": "application header" } + ] +} diff --git a/packages/ui_header/seed/scripts/tests/metadata.test.lua b/packages/ui_header/seed/scripts/tests/metadata.test.lua new file mode 100644 index 000000000..96702da33 --- /dev/null +++ b/packages/ui_header/seed/scripts/tests/metadata.test.lua @@ -0,0 +1,38 @@ +-- Metadata validation tests for ui_header package +-- Uses lua_test framework + +describe("App Header Package Metadata", function() + local metadata = load_cases("metadata.json") + + it("should have valid package structure", function() + expect(metadata.packageId).toBe("ui_header") + expect(metadata.name).toBe("App Header") + expect(metadata.version).toBeTruthy() + expect(metadata.description).toBeTruthy() + end) + + it("should have correct package ID format", function() + expect(metadata.packageId).toMatch("^[a-z_]+$") + end) + + it("should have semantic version", function() + expect(metadata.version).toMatch("^%d+%.%d+%.%d+$") + end) + + it("should have exports defined", function() + expect(metadata.exports).toBeTruthy() + expect(metadata.exports.components).toBeType("table") + end) + + it("should have dependencies array", function() + expect(metadata.dependencies).toBeType("table") + end) + + it("should depend on ui_permissions", function() + local found = false + for _, dep in ipairs(metadata.dependencies) do + if dep == "ui_permissions" then found = true break end + end + expect(found).toBe(true) + end) +end) diff --git a/packages/ui_home/seed/scripts/tests/metadata.cases.json b/packages/ui_home/seed/scripts/tests/metadata.cases.json new file mode 100644 index 000000000..68c87d320 --- /dev/null +++ b/packages/ui_home/seed/scripts/tests/metadata.cases.json @@ -0,0 +1,24 @@ +{ + "package_id_validation": [ + { "pattern": "^[a-z_]+$", "desc": "lowercase with underscores only" } + ], + "version_validation": [ + { "pattern": "^%d+%.%d+%.%d+$", "desc": "semantic version format" } + ], + "required_fields": [ + { "field": "packageId", "desc": "package identifier" }, + { "field": "name", "desc": "display name" }, + { "field": "version", "desc": "version string" }, + { "field": "description", "desc": "package description" } + ], + "required_dependencies": [ + { "dep": "ui_permissions", "desc": "permission handling" } + ], + "export_types": [ + { "type": "pages", "desc": "page exports" }, + { "type": "scripts", "desc": "lua script exports" } + ], + "expected_pages": [ + { "name": "level1", "desc": "home page" } + ] +} diff --git a/packages/ui_home/seed/scripts/tests/metadata.test.lua b/packages/ui_home/seed/scripts/tests/metadata.test.lua new file mode 100644 index 000000000..dd72c6f7a --- /dev/null +++ b/packages/ui_home/seed/scripts/tests/metadata.test.lua @@ -0,0 +1,41 @@ +-- Metadata validation tests for ui_home package +-- Uses lua_test framework + +describe("Home Page Package Metadata", function() + local metadata = load_cases("metadata.json") + + it("should have valid package structure", function() + expect(metadata.packageId).toBe("ui_home") + expect(metadata.name).toBe("Home Page") + expect(metadata.version).toBeTruthy() + expect(metadata.description).toBeTruthy() + end) + + it("should have correct package ID format", function() + expect(metadata.packageId).toMatch("^[a-z_]+$") + end) + + it("should have semantic version", function() + expect(metadata.version).toMatch("^%d+%.%d+%.%d+$") + end) + + it("should have exports defined", function() + expect(metadata.exports).toBeTruthy() + end) + + it("should have dependencies array", function() + expect(metadata.dependencies).toBeType("table") + end) + + it("should depend on ui_permissions", function() + local found = false + for _, dep in ipairs(metadata.dependencies) do + if dep == "ui_permissions" then found = true break end + end + expect(found).toBe(true) + end) + + it("should export pages", function() + expect(metadata.exports.pages).toBeType("table") + end) +end)