From 83691f4bbfedbd618ba1bcfd369b4e2c613fa20b Mon Sep 17 00:00:00 2001 From: Richard Ward Date: Tue, 30 Dec 2025 13:10:27 +0000 Subject: [PATCH] config: packages,metadata,json (4 files) --- .../seed/scripts/tests/arcade.test.lua | 60 +++++++++++++++++++ packages/audit_log/seed/metadata.json | 8 +++ packages/code_editor/seed/metadata.json | 7 +++ packages/package_validator/seed/metadata.json | 14 +++++ 4 files changed, 89 insertions(+) create mode 100644 packages/arcade_lobby/seed/scripts/tests/arcade.test.lua diff --git a/packages/arcade_lobby/seed/scripts/tests/arcade.test.lua b/packages/arcade_lobby/seed/scripts/tests/arcade.test.lua new file mode 100644 index 000000000..abc9cd6c1 --- /dev/null +++ b/packages/arcade_lobby/seed/scripts/tests/arcade.test.lua @@ -0,0 +1,60 @@ +-- Arcade Lobby functionality tests +-- Uses lua_test framework with parameterized test cases + +describe("Matchmaking", function() + local cases = load_cases("arcade.cases.json") + local matchmaking = require("matchmaking") + + describe("assign_bucket", function() + it_each(cases.matchmaking.assign_bucket, "$desc", function(tc) + local party = { size = tc.party_size } + local bucket = matchmaking.assign_bucket(party) + expect(bucket).toBe(tc.expected) + end) + + it("returns solo for empty party table", function() + local bucket = matchmaking.assign_bucket({}) + expect(bucket).toBe("solo") + end) + end) +end) + +describe("Permissions", function() + local cases = load_cases("arcade.cases.json") + local permissions = require("permissions") + + describe("can_create_tournament", function() + it_each(cases.permissions.can_create_tournament, "$desc", function(tc) + local user = { role = tc.role } + local result = permissions.can_create_tournament(user) + expect(result).toBe(tc.expected) + end) + + it("returns false for unknown role", function() + local user = { role = "moderator" } + local result = permissions.can_create_tournament(user) + expect(result).toBe(false) + end) + end) +end) + +describe("Queue Metrics", function() + local cases = load_cases("arcade.cases.json") + local queue_metrics = require("queue_metrics") + + describe("summarize", function() + it_each(cases.queue_metrics.summarize, "$desc", function(tc) + local result = queue_metrics.summarize(tc.queues) + expect(result.totalPlayers).toBe(tc.expected_players) + expect(result.longestWaitSeconds).toBe(tc.expected_wait) + end) + + it("returns correct structure", function() + local result = queue_metrics.summarize({ + { players = 5, waitSeconds = 10 } + }) + expect(result.totalPlayers).toBeTruthy() + expect(result.longestWaitSeconds).toBeTruthy() + end) + end) +end) diff --git a/packages/audit_log/seed/metadata.json b/packages/audit_log/seed/metadata.json index 71ebb7bfd..678fda342 100644 --- a/packages/audit_log/seed/metadata.json +++ b/packages/audit_log/seed/metadata.json @@ -25,6 +25,14 @@ "formatting" ] }, + "tests": { + "scripts": [ + "tests/metadata.test.lua", + "tests/components.test.lua", + "tests/stats.test.lua" + ], + "cases": [] + }, "minLevel": 3, "bindings": { "dbal": true, diff --git a/packages/code_editor/seed/metadata.json b/packages/code_editor/seed/metadata.json index 5bbfab3c9..a6ebddb9d 100644 --- a/packages/code_editor/seed/metadata.json +++ b/packages/code_editor/seed/metadata.json @@ -23,5 +23,12 @@ "ThemeEditor" ] }, + "tests": { + "scripts": [ + "tests/metadata.test.lua", + "tests/components.test.lua" + ], + "cases": [] + }, "minLevel": 5 } \ No newline at end of file diff --git a/packages/package_validator/seed/metadata.json b/packages/package_validator/seed/metadata.json index 46258cb94..e4f821860 100644 --- a/packages/package_validator/seed/metadata.json +++ b/packages/package_validator/seed/metadata.json @@ -21,5 +21,19 @@ "cli" ] }, + "tests": { + "scripts": [ + "tests/metadata.test.lua", + "tests/component.test.lua", + "tests/validate.test.lua", + "tests/lua_validator.test.lua", + "tests/structure_validator.test.lua", + "tests/devdependencies.test.lua", + "tests/parameterized.test.lua" + ], + "cases": [ + "tests/cases.json" + ] + }, "minLevel": 5 }