diff options
| author | Adam <[email protected]> | 2026-03-09 08:25:34 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-09 08:25:41 -0500 |
| commit | 6388cbaf9261a71ec8e5e90d09ccb01450201dff (patch) | |
| tree | 6a1a39c3270d92151fff12ccb268a566eafa4594 /packages/app/src/theme-preload.test.ts | |
| parent | 5cc61e1b536c047a9ff2b348d99711807c6c270f (diff) | |
| download | opencode-6388cbaf9261a71ec8e5e90d09ccb01450201dff.tar.gz opencode-6388cbaf9261a71ec8e5e90d09ccb01450201dff.zip | |
fix(app): remove oc-1 theme
Diffstat (limited to 'packages/app/src/theme-preload.test.ts')
| -rw-r--r-- | packages/app/src/theme-preload.test.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/app/src/theme-preload.test.ts b/packages/app/src/theme-preload.test.ts new file mode 100644 index 000000000..00d7da239 --- /dev/null +++ b/packages/app/src/theme-preload.test.ts @@ -0,0 +1,46 @@ +import { beforeEach, describe, expect, test } from "bun:test" + +const src = await Bun.file(new URL("../public/oc-theme-preload.js", import.meta.url)).text() + +const run = () => Function(src)() + +beforeEach(() => { + document.head.innerHTML = "" + document.documentElement.removeAttribute("data-theme") + document.documentElement.removeAttribute("data-color-scheme") + localStorage.clear() + Object.defineProperty(window, "matchMedia", { + value: () => + ({ + matches: false, + }) as MediaQueryList, + configurable: true, + }) +}) + +describe("theme preload", () => { + test("migrates legacy oc-1 to oc-2 before mount", () => { + localStorage.setItem("opencode-theme-id", "oc-1") + localStorage.setItem("opencode-theme-css-light", "--background-base:#fff;") + localStorage.setItem("opencode-theme-css-dark", "--background-base:#000;") + + run() + + expect(document.documentElement.dataset.theme).toBe("oc-2") + expect(document.documentElement.dataset.colorScheme).toBe("light") + expect(localStorage.getItem("opencode-theme-id")).toBe("oc-2") + expect(localStorage.getItem("opencode-theme-css-light")).toBeNull() + expect(localStorage.getItem("opencode-theme-css-dark")).toBeNull() + expect(document.getElementById("oc-theme-preload")).toBeNull() + }) + + test("keeps cached css for non-default themes", () => { + localStorage.setItem("opencode-theme-id", "nightowl") + localStorage.setItem("opencode-theme-css-light", "--background-base:#fff;") + + run() + + expect(document.documentElement.dataset.theme).toBe("nightowl") + expect(document.getElementById("oc-theme-preload")?.textContent).toContain("--background-base:#fff;") + }) +}) |
