import { expect, test } from "bun:test"; import { Window } from "happy-dom"; import { showBuilderBlockActions } from "../src/live-canvas.ts"; test("compact selection actions retain accessible names and callbacks without interpreting labels", () => { const window = new Window(), document = window.document; document.body.innerHTML = '
Content
'; let calls = 0; showBuilderBlockActions( document as unknown as Document, "text", "Text — ", { Edit: () => calls++, Delete: () => calls++ }, ); const toolbar = document.querySelector('[role="toolbar"]')!; expect(toolbar.getAttribute("aria-label")).toBe("Text — actions"); expect(toolbar.querySelector("strong")?.textContent).toBe("Text"); expect(toolbar.querySelector("script")).toBeNull(); const edit = toolbar.querySelector('[aria-label="Edit"]') as any; expect(edit.title).toBe("Edit"); expect(edit.querySelector("svg")).not.toBeNull(); edit.click(); expect(calls).toBe(1); showBuilderBlockActions(document as unknown as Document, "text", "Text", { Edit: () => calls++ }); expect(document.querySelectorAll('[role="toolbar"]')).toHaveLength(1); window.happyDOM.abort(); });