From 2c91b8c6d8fc338f4cf333b21b6448167a6b6611 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Mon, 6 Apr 2026 18:57:02 -0500 Subject: [PATCH] test(tui): add test for 256-color backdrop codes --- .../pi-tui/src/__tests__/overlay-layout.test.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/pi-tui/src/__tests__/overlay-layout.test.ts b/packages/pi-tui/src/__tests__/overlay-layout.test.ts index 4f7d7817c..20907025a 100644 --- a/packages/pi-tui/src/__tests__/overlay-layout.test.ts +++ b/packages/pi-tui/src/__tests__/overlay-layout.test.ts @@ -34,6 +34,23 @@ describe("compositeOverlays — backdrop", () => { assert.ok(dimmedLine.includes("\x1b[2m"), "base line should be dimmed"); }); + it("backdrop uses 256-color dark gray background", () => { + const base = ["hello world", "second line"]; + const overlay = makeEntry(["OV"], { + width: 2, + anchor: "top-left", + backdrop: true, + }); + + const result = compositeOverlays(base, [overlay], 20, 20, 2); + + // Check a non-overlay line for full backdrop codes + const line = result.find((l) => l.includes("second line")); + assert.ok(line, "should have a line containing 'second line'"); + assert.ok(line.includes("\x1b[38;5;242m"), "backdrop should set gray foreground"); + assert.ok(line.includes("\x1b[48;5;233m"), "backdrop should set dark gray background"); + }); + it("does not dim when backdrop is false/absent", () => { const base = ["hello world", "second line"]; const overlay = makeEntry(["OVERLAY"], {