import { readFileSync } from "node:fs"; import { describe, expect, it } from "vitest"; const read = (relative: string) => readFileSync(new URL(relative, import.meta.url), "utf8"); describe("boss guide UI integration", () => { it("is reachable from pause and mounted as a DOM gameplay overlay", () => { expect(read("../game/store.ts")).toContain('"boss-guide"'); expect(read("./PauseMenu.tsx")).toContain('openOverlay("boss-guide")'); expect(read("./GameplayPanels.tsx")).toContain('overlay === "boss-guide"'); expect(read("./BossGuidePanel.tsx")).toContain('role="dialog"'); }); it("exposes controller navigation and all mechanic verification fields", () => { const source = read("./BossGuidePanel.tsx"); expect(source).toContain("useMenuController(actions"); expect(source).toContain("onBack: close"); expect(source).toContain("mechanic.trigger"); expect(source).toContain("mechanic.timing"); expect(source).toContain("mechanic.targetAndEffect"); expect(source).toContain("mechanic.telegraph"); expect(source).toContain("mechanic.counterplay"); expect(source).toContain("mechanic.testInstruction"); expect(source).toContain("Basic attacks only"); }); });