Files
metabuilder/packages/user_manager/seed/scripts/tests/actions.test.lua

77 lines
2.5 KiB
Lua

-- Tests for user_manager actions.lua module
-- Loads test cases from JSON file
local cases = load_cases("actions.cases.json")
describe("user_manager/actions", function()
local actions
beforeEach(function()
actions = {
create = function(data)
return { action = "create_user", data = data }
end,
update = function(user_id, data)
return { action = "update_user", user_id = user_id, data = data }
end,
delete = function(user_id)
return { action = "delete_user", user_id = user_id, confirm = true }
end,
change_level = function(user_id, new_level)
return { action = "change_level", user_id = user_id, level = new_level }
end,
toggle_active = function(user_id, active)
return { action = "toggle_active", user_id = user_id, active = active }
end
}
end)
describe("create", function()
it_each(cases.create)("should create user with $desc", function(tc)
local result = actions.create(tc.data)
expect(result.action).toBe("create_user")
expect(result.data).toEqual(tc.data)
end)
end)
describe("update", function()
it_each(cases.update)("should $desc", function(tc)
local result = actions.update(tc.user_id, tc.data)
expect(result.action).toBe("update_user")
expect(result.user_id).toBe(tc.user_id)
expect(result.data).toEqual(tc.data)
end)
end)
describe("delete", function()
it_each(cases.delete)("should delete user $user_id with confirmation", function(tc)
local result = actions.delete(tc.user_id)
expect(result.action).toBe("delete_user")
expect(result.user_id).toBe(tc.user_id)
expect(result.confirm).toBe(true)
end)
end)
describe("change_level", function()
it_each(cases.change_level)("should change $user_id $desc", function(tc)
local result = actions.change_level(tc.user_id, tc.level)
expect(result.action).toBe("change_level")
expect(result.user_id).toBe(tc.user_id)
expect(result.level).toBe(tc.level)
end)
end)
describe("toggle_active", function()
it_each(cases.toggle_active)("should $desc $user_id", function(tc)
local result = actions.toggle_active(tc.user_id, tc.active)
expect(result.action).toBe("toggle_active")
expect(result.user_id).toBe(tc.user_id)
expect(result.active).toBe(tc.active)
end)
end)
end)