Per ADR-0045 (three-tier library naming) the launcher-test migrates
from the retired lib-sporel.* prefix to the new lib-management.* tier.
- manifest.lib id: lib-sporel.launcher-test -> lib-management.launcher-test
- manifest.core id: lib-sporel.launcher-test.core -> lib-management.launcher-test.core
- init.lua engine.module.dir_of("lib-management.launcher-test")
- README + fsm.lua + init.lua comments updated
Gitea repo renamed in lockstep:
sporel/sporel-lib-sporel.launcher-test ->
sporel/sporel-lib-management.launcher-test
35 lines
2.2 KiB
Lua
35 lines
2.2 KiB
Lua
-- lib-management.launcher-test — P.3.4
|
|
-- 11 assertions: 5 FSM transitions + 1 FSM stability + 5 Engine-Surface existence.
|
|
-- (measure_text runtime-behavior check dropped — needs Raylib font, not loaded in headless test-mode.)
|
|
-- Pattern follows P.3.1 Test-Module-Pattern; TAP output via engine.test.*
|
|
|
|
-- FSM-Source: byte-identical Kopie aus modules/lib-management.launcher/fsm.lua.
|
|
-- Sporel-Resolver lehnt module-als-dep ab (nur lib-deps werden resolved),
|
|
-- daher hat dieses Test-Modul seine eigene fsm.lua. Drift wird via Smoke-
|
|
-- diff-check verhindert (siehe smoke.sh P0-S15-pre).
|
|
local M = {}
|
|
|
|
local fsm = dofile(engine.module.dir_of("lib-management.launcher-test") .. "/fsm.lua")
|
|
|
|
function M.run_tests(ctx)
|
|
-- FSM transitions (5)
|
|
engine.test.equals(fsm.next(fsm.STATE_LIST, "esc"), fsm.STATE_QUIT_CONFIRM, "list+esc -> quit_confirm")
|
|
engine.test.equals(fsm.next(fsm.STATE_QUIT_CONFIRM, "esc"), fsm.STATE_LIST, "quit_confirm+esc -> list")
|
|
engine.test.equals(fsm.next(fsm.STATE_QUIT_CONFIRM, "enter"), fsm.EXIT, "quit_confirm+enter -> exit")
|
|
engine.test.equals(fsm.next(fsm.STATE_QUIT_CONFIRM, "click_yes"), fsm.EXIT, "quit_confirm+click_yes -> exit")
|
|
engine.test.equals(fsm.next(fsm.STATE_QUIT_CONFIRM, "click_no"), fsm.STATE_LIST, "quit_confirm+click_no -> list")
|
|
|
|
-- FSM stability (2)
|
|
engine.test.equals(fsm.next(fsm.STATE_LIST, "click_module"), fsm.STATE_LIST, "list+click_module -> list (switch is side-effect)")
|
|
engine.test.equals(fsm.next("garbage_state", "esc"), "garbage_state", "unknown state passes through unchanged")
|
|
|
|
-- Engine-surface existence (6)
|
|
engine.test.assert(type(engine.module.list) == "function", "engine.module.list is function")
|
|
engine.test.assert(type(engine.module.dir_of) == "function", "engine.module.dir_of is function")
|
|
engine.test.assert(type(engine.render.draw_text) == "function", "engine.render.draw_text is function")
|
|
engine.test.assert(type(engine.render.measure_text) == "function", "engine.render.measure_text is function")
|
|
engine.test.assert(type(engine.module.list()) == "table", "engine.module.list() returns table")
|
|
end
|
|
|
|
return M
|