25 lines
845 B
TypeScript
25 lines
845 B
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { normalizeHud } from "../engine/presentation.ts";
|
|
test("HUD bounds script values and handles malformed meter entries", () => {
|
|
const h = normalizeHud({
|
|
objective: "x".repeat(300),
|
|
counters: [1, 2, 3, 4, 5],
|
|
meters: [
|
|
null,
|
|
{ id: "life", max: 5, value: 12, style: "hearts" },
|
|
{ max: 0, value: NaN },
|
|
{ max: 10, value: -3 },
|
|
],
|
|
});
|
|
assert.equal(h.objective!.length, 180);
|
|
assert.equal(h.counters!.length, 4);
|
|
assert.equal(h.meters![0].value, 0);
|
|
assert.equal(h.meters![1].value, 5);
|
|
assert.equal(h.meters![1].style, "hearts");
|
|
assert.equal(h.meters![2].max, 1);
|
|
assert.equal(h.meters![3].value, 0);
|
|
assert.deepEqual(normalizeHud(null), {});
|
|
assert.equal(normalizeHud({ overlay: null }).overlay, null);
|
|
});
|