27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
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");
|
|
});
|
|
});
|