commit b27911484e61169392a9e2006d31d5656df9dbb9 Author: Calic Date: Tue May 12 23:15:50 2026 +0200 test(P.3.4): initial — lib-sporel.launcher-test v0.1.0 (12 assertions, P.3.1 pattern) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..bab4fe6 --- /dev/null +++ b/init.lua @@ -0,0 +1,26 @@ +-- lib-sporel.launcher-test — P.3.4 +-- 12 assertions: 5 FSM transitions + 1 FSM stability + 6 Engine-Surface existence. +-- Pattern follows P.3.1 Test-Module-Pattern; TAP output via engine.test.* + +local fsm = dofile(engine.module.dir_of("lib-sporel.launcher") .. "/fsm.lua") + +function init(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 (1) + engine.test.equals(fsm.next(fsm.STATE_LIST, "click_module"), fsm.STATE_LIST, "list+click_module -> list (switch is side-effect)") + + -- 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") + local w, h = engine.render.measure_text("Test", 20) + engine.test.assert(w > 0 and h > 0, "measure_text returns positive dimensions") +end diff --git a/manifest.core b/manifest.core new file mode 100644 index 0000000..66e0b0a --- /dev/null +++ b/manifest.core @@ -0,0 +1,6 @@ +{ + "id": "lib-sporel.launcher-test.core", + "kind": "lib", + "version": "0.1.0", + "license": "Proprietary" +} diff --git a/manifest.module b/manifest.module new file mode 100644 index 0000000..8832f23 --- /dev/null +++ b/manifest.module @@ -0,0 +1,11 @@ +{ + "id": "lib-sporel.launcher-test", + "version": "0.1.0", + "kind": "test-module", + "api": "^0.1", + "entry_point": "init.lua", + "deps": [ + { "id": "lib-sporel.launcher", "version": "0.1.0" }, + { "id": "lib-core.input", "version": "0.3.0" } + ] +}