test(input): 4 new was_action_released assertions (P.3.10)

17 assertions total (13 → 17). Engine-surface existence (2) +
lib-API headless-default (2). Dep bump lib-core.input 0.3.0 → 0.4.0.
This commit is contained in:
Axel Meyer
2026-05-15 21:34:43 +02:00
parent c37dd1678f
commit af58d82139
2 changed files with 13 additions and 5 deletions

View File

@@ -1,11 +1,11 @@
-- lib-core.input-test — P.3.3 test-module -- lib-core.input-test — P.3.3 test-module
-- Validates engine.input mouse surface + lib-core.input v0.3.0 BIND_MAP refactor. -- Validates engine.input mouse surface + lib-core.input v0.4.0 (BIND_MAP + was_action_released).
-- Headless via P.3.1 test-mode pattern. 13 assertions. -- Headless via P.3.1 test-mode pattern. 17 assertions.
local input = require("lib-core.input") local input = require("lib-core.input")
function init(ctx) function init(ctx)
-- Engine surface present (5 assertions) -- Engine surface present (7 assertions)
engine.test.assert(type(engine.input.MOUSE_LEFT) == "number", engine.test.assert(type(engine.input.MOUSE_LEFT) == "number",
"MOUSE_LEFT constant is integer") "MOUSE_LEFT constant is integer")
engine.test.assert(type(engine.input.MOUSE_RIGHT) == "number", engine.test.assert(type(engine.input.MOUSE_RIGHT) == "number",
@@ -16,6 +16,10 @@ function init(ctx)
"is_mouse_down function registered") "is_mouse_down function registered")
engine.test.assert(type(engine.input.was_mouse_pressed) == "function", engine.test.assert(type(engine.input.was_mouse_pressed) == "function",
"was_mouse_pressed function registered") "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) -- bind() accepts mouse-strings (1 assertion)
input.bind("click", {"mouse_left"}) input.bind("click", {"mouse_left"})
@@ -33,11 +37,15 @@ function init(ctx)
engine.test.equals(input.action_count(), 2, engine.test.equals(input.action_count(), 2,
"no partial state mutation on failed bind") "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, engine.test.equals(input.is_action_down("click"), false,
"headless: unpressed mouse_left is_action_down=false") "headless: unpressed mouse_left is_action_down=false")
engine.test.equals(input.was_action_pressed("click"), false, engine.test.equals(input.was_action_pressed("click"), false,
"headless: unpressed was_action_pressed=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) -- Existing key-only binding still works (regression-check) (1 assertion)
input.bind("walk_left", {"a", "left"}) input.bind("walk_left", {"a", "left"})

View File

@@ -5,6 +5,6 @@
"api": "^0.1", "api": "^0.1",
"entry_point": "init.lua", "entry_point": "init.lua",
"deps": [ "deps": [
{"id": "lib-core.input", "version": "0.3.0"} {"id": "lib-core.input", "version": "0.4.0"}
] ]
} }