diff --git a/init.lua b/init.lua index 3b942f8..e5b2c0e 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,11 @@ -- lib-core.input-test — P.3.3 test-module --- Validates engine.input mouse surface + lib-core.input v0.3.0 BIND_MAP refactor. --- Headless via P.3.1 test-mode pattern. 13 assertions. +-- Validates engine.input mouse surface + lib-core.input v0.4.0 (BIND_MAP + was_action_released). +-- Headless via P.3.1 test-mode pattern. 17 assertions. local input = require("lib-core.input") function init(ctx) - -- Engine surface present (5 assertions) + -- Engine surface present (7 assertions) engine.test.assert(type(engine.input.MOUSE_LEFT) == "number", "MOUSE_LEFT constant is integer") engine.test.assert(type(engine.input.MOUSE_RIGHT) == "number", @@ -16,6 +16,10 @@ function init(ctx) "is_mouse_down function registered") engine.test.assert(type(engine.input.was_mouse_pressed) == "function", "was_mouse_pressed function registered") + engine.test.assert(type(engine.input.was_released) == "function", + "was_released function registered") + engine.test.assert(type(engine.input.was_mouse_released) == "function", + "was_mouse_released function registered") -- bind() accepts mouse-strings (1 assertion) input.bind("click", {"mouse_left"}) @@ -33,11 +37,15 @@ function init(ctx) engine.test.equals(input.action_count(), 2, "no partial state mutation on failed bind") - -- is_action_down returns false in headless (no actual press) (2 assertions) + -- is_action_down / was_action_pressed / was_action_released return false in headless (4 assertions) engine.test.equals(input.is_action_down("click"), false, "headless: unpressed mouse_left is_action_down=false") engine.test.equals(input.was_action_pressed("click"), false, "headless: unpressed was_action_pressed=false") + engine.test.equals(input.was_action_released("click"), false, + "headless: unpressed was_action_released=false") + engine.test.equals(input.was_action_released("nonexistent_action"), false, + "was_action_released for unknown action returns false") -- Existing key-only binding still works (regression-check) (1 assertion) input.bind("walk_left", {"a", "left"}) diff --git a/manifest.module b/manifest.module index e59b4fb..6a0bffa 100644 --- a/manifest.module +++ b/manifest.module @@ -5,6 +5,6 @@ "api": "^0.1", "entry_point": "init.lua", "deps": [ - {"id": "lib-core.input", "version": "0.3.0"} + {"id": "lib-core.input", "version": "0.4.0"} ] }