Files
metabuilder/packages/ui_level6/seed/scripts/tests/transfer.test.lua
2025-12-30 13:01:09 +00:00

78 lines
2.6 KiB
Lua

-- Transfer Tests for ui_level6
-- Parameterized tests for supergod-level transfer functions
local describe = require("lua_test.describe")
local it = require("lua_test.it")
local it_each = require("lua_test.it_each")
local expect = require("lua_test.expect")
local cases = require("tests.transfer.cases")
local transferForm = require("transfer.transfer_form")
local transferHistory = require("transfer.transfer_history")
describe("transfer (level6)", function()
describe("transferForm", function()
it_each(cases.transferForm.valid, "$description", function(case)
local fromUser = { id = case.fromId, name = case.fromName }
local toUser = { id = case.toId, name = case.toName }
local form = transferForm(fromUser, toUser)
expect(form.type).toBe("power_transfer_form")
expect(form.fromUser.id).toBe(case.fromId)
expect(form.toUser.id).toBe(case.toId)
expect(form.confirmationRequired).toBe(true)
expect(form.warningMessage).toBeTruthy()
end)
it("should require confirmation", function()
local fromUser = { id = "supergod_1", name = "SuperGod" }
local toUser = { id = "new_god", name = "NewGod" }
local form = transferForm(fromUser, toUser)
expect(form.confirmationRequired).toBe(true)
end)
it("should include warning message", function()
local fromUser = { id = "supergod_1", name = "SuperGod" }
local toUser = { id = "new_god", name = "NewGod" }
local form = transferForm(fromUser, toUser)
expect(form.warningMessage).toContain("cannot be undone")
end)
end)
describe("transferHistory", function()
it("should return history component configuration", function()
local history = transferHistory()
expect(history.type).toBe("transfer_history")
expect(history.columns).toBeTruthy()
end)
it_each(cases.transferHistory.columns, "should have $label column", function(case)
local history = transferHistory()
local found = false
for _, col in ipairs(history.columns) do
if col.id == case.id then
expect(col.label).toBe(case.label)
if case.type then
expect(col.type).toBe(case.type)
end
found = true
break
end
end
expect(found).toBe(true)
end)
it("should have all required columns", function()
local history = transferHistory()
expect(#history.columns).toBeGreaterThanOrEqual(4)
end)
end)
end)
return {
name = "transfer.test",
description = "Tests for supergod transfer functions"
}