diff --git a/web/components/site-header.test.mjs b/web/components/site-header.test.mjs new file mode 100644 index 0000000..8d2554f --- /dev/null +++ b/web/components/site-header.test.mjs @@ -0,0 +1,14 @@ +import assert from "node:assert/strict"; +import { readFile } from "node:fs/promises"; +import { describe, it } from "node:test"; + +const source = await readFile(new URL("./site-header.tsx", import.meta.url), "utf8"); + +describe("site header preferences", () => { + it("renders locale, palette, and theme controls in the dashboard header", () => { + assert.match(source, /import \{ LocaleSwitcher \} from "@\/components\/locale-switcher"/); + assert.match(source, /import \{ PaletteToggle \} from "@\/components\/palette-toggle"/); + assert.match(source, /import \{ ThemeToggle \} from "@\/components\/theme-toggle"/); + assert.match(source, /[\s\S]*[\s\S]*/); + }); +}); diff --git a/web/components/site-header.tsx b/web/components/site-header.tsx index 5330ad6..83b5365 100644 --- a/web/components/site-header.tsx +++ b/web/components/site-header.tsx @@ -3,7 +3,10 @@ import { useEffect, useRef } from "react" import { usePathname } from "next/navigation" +import { LocaleSwitcher } from "@/components/locale-switcher" +import { PaletteToggle } from "@/components/palette-toggle" import { RealtimeConnectionStatus } from "@/components/realtime-connection-status" +import { ThemeToggle } from "@/components/theme-toggle" import { useI18n } from "@/i18n/provider" import { getPageTitleKey } from "@/lib/navigation" import { useAgentConversationsStore } from "@/lib/stores/agent-conversations" @@ -74,6 +77,11 @@ export function SiteHeader() { +
+ + + +
)