From 35bacaaa09f2534e68a1f8c7f49ac6138e67513b Mon Sep 17 00:00:00 2001 From: Codex Microtask Operator Date: Sat, 13 Jun 2026 01:25:34 +0200 Subject: [PATCH] Handle empty arcade game lists --- packages/tui/src/arcade/registry.test.ts | 8 ++++++++ packages/tui/src/arcade/registry.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/tui/src/arcade/registry.test.ts diff --git a/packages/tui/src/arcade/registry.test.ts b/packages/tui/src/arcade/registry.test.ts new file mode 100644 index 0000000..6d04d59 --- /dev/null +++ b/packages/tui/src/arcade/registry.test.ts @@ -0,0 +1,8 @@ +import { describe, expect, it } from "vitest"; +import { ArcadeRegistry, renderArcadeList } from "./registry.js"; + +describe("arcade registry", () => { + it("renders an empty arcade list without throwing", () => { + expect(renderArcadeList(new ArcadeRegistry())).toContain("No games registered"); + }); +}); diff --git a/packages/tui/src/arcade/registry.ts b/packages/tui/src/arcade/registry.ts index d178d41..58bb79a 100644 --- a/packages/tui/src/arcade/registry.ts +++ b/packages/tui/src/arcade/registry.ts @@ -70,6 +70,6 @@ export function renderArcadeList(registry = createDefaultArcadeRegistry()) { "", `${"id".padEnd(idWidth)} ${"title".padEnd(titleWidth)} description`, `${"-".repeat(idWidth)} ${"-".repeat(titleWidth)} ${"-".repeat(40)}`, - ...rows.map((row) => `${row.id.padEnd(idWidth)} ${row.title.padEnd(titleWidth)} ${row.description}`) + ...(rows.length ? rows.map((row) => `${row.id.padEnd(idWidth)} ${row.title.padEnd(titleWidth)} ${row.description}`) : ["No games registered"]) ].join("\n"); }