feat: sync embedded analytics theme with parent app

This commit is contained in:
2026-04-02 20:11:33 +08:00
parent 1b5977a420
commit cc66034e59
8 changed files with 219 additions and 44 deletions

20
lib/theme-sync.test.ts Normal file
View File

@@ -0,0 +1,20 @@
import { describe, expect, test } from "bun:test";
import { resolveIncomingThemeMode, resolveStoredTheme } from "./theme-sync";
describe("theme sync helpers", () => {
test("resolves stored analytics theme values", () => {
expect(resolveStoredTheme("light", true)).toBe("light");
expect(resolveStoredTheme("dark", false)).toBe("dark");
expect(resolveStoredTheme("system", true)).toBe("dark");
expect(resolveStoredTheme("system", false)).toBe("light");
});
test("maps new-api theme messages to analytics themes", () => {
expect(resolveIncomingThemeMode("light", true)).toBe("light");
expect(resolveIncomingThemeMode("dark", false)).toBe("dark");
expect(resolveIncomingThemeMode("auto", true)).toBe("dark");
expect(resolveIncomingThemeMode("auto", false)).toBe("light");
expect(resolveIncomingThemeMode("system", true)).toBe("dark");
expect(resolveIncomingThemeMode("unknown", true)).toBeNull();
});
});