feat: support query theme bootstrap for embeds

This commit is contained in:
2026-04-02 20:41:18 +08:00
parent 83071a4b76
commit 6e55bc02b7
4 changed files with 87 additions and 9 deletions

View File

@@ -1,5 +1,9 @@
import { describe, expect, test } from "bun:test";
import { resolveIncomingThemeMode, resolveStoredTheme } from "./theme-sync";
import {
parseThemeQuery,
resolveIncomingThemeMode,
resolveStoredTheme,
} from "./theme-sync";
describe("theme sync helpers", () => {
test("resolves stored analytics theme values", () => {
@@ -17,4 +21,14 @@ describe("theme sync helpers", () => {
expect(resolveIncomingThemeMode("system", true)).toBe("dark");
expect(resolveIncomingThemeMode("unknown", true)).toBeNull();
});
test("parses theme override from query params", () => {
expect(parseThemeQuery("light")).toBe("light");
expect(parseThemeQuery("dark")).toBe("dark");
expect(parseThemeQuery("auto")).toBe("system");
expect(parseThemeQuery("system")).toBe("system");
expect(parseThemeQuery("LIGHT")).toBe("light");
expect(parseThemeQuery("unknown")).toBeNull();
expect(parseThemeQuery(null)).toBeNull();
});
});