import { expect, test } from "bun:test"; import { HMR_CLIENT_JS, collectScripts } from "../src/runtime.ts"; test("accent controls load the shared theme runtime", () => { expect(collectScripts('')).toContain( "/__wrnexus/theme.js", ); }); test("accent clear controls load the shared theme runtime", () => { expect(collectScripts("")).toContain( "/__wrnexus/theme.js", ); }); test("HMR preserves the active browser theme and accent", () => { expect(HMR_CLIENT_JS).not.toContain('["data-theme", "data-accent", "lang"]'); expect(HMR_CLIENT_JS).not.toContain("document.documentElement.setAttribute(name, value)"); expect(HMR_CLIENT_JS).toMatch(/var nextLang\s*=\s*doc\.documentElement\.getAttribute\("lang"\)/); expect(HMR_CLIENT_JS).toMatch(/typeof\s+window\.wireTheme\.bind\s*===\s*"function"/); expect(HMR_CLIENT_JS).toMatch(/window\.wireTheme\.bind\(document\)/); expect(HMR_CLIENT_JS).toContain('new CustomEvent("wrnexus:hmr-updated"'); });