18 lines
1.1 KiB
JavaScript
18 lines
1.1 KiB
JavaScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { EveInputGestureResolver } from "../dist/input-gestures.js";
|
|
|
|
test("resolves keyboard chords", () => {
|
|
const resolver = new EveInputGestureResolver([{ bindingId: "boost", actionId: "drive.boost", gesture: { kind: "chord", controls: ["keyboard.shift", "keyboard.w"] } }]);
|
|
assert.deepEqual(resolver.press("keyboard.shift", 0), []);
|
|
assert.deepEqual(resolver.press("keyboard.w", 1), ["drive.boost"]);
|
|
});
|
|
|
|
test("resolves ordered d-pad strings and resets wrong input", () => {
|
|
const resolver = new EveInputGestureResolver([{ bindingId: "shield", actionId: "shield.overcharge", gesture: { kind: "sequence", controls: ["gamepad.dpad.up", "gamepad.dpad.right", "gamepad.dpad.down"], maxStepIntervalMs: 500 } }]);
|
|
assert.deepEqual(resolver.press("gamepad.dpad.up", 0), []);
|
|
assert.deepEqual(resolver.press("gamepad.dpad.left", 100), []);
|
|
assert.deepEqual(resolver.press("gamepad.dpad.up", 200), []);
|
|
assert.deepEqual(resolver.press("gamepad.dpad.right", 300), []);
|
|
assert.deepEqual(resolver.press("gamepad.dpad.down", 400), ["shield.overcharge"]);
|
|
});
|