import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { render } from "@testing-library/react"; import { resetDocument } from "@/lib/appearance/test-helpers"; import { AppearanceSync } from "./appearance-sync"; let pathname = "/a"; vi.mock("next/navigation", () => ({ usePathname: () => pathname })); beforeEach(resetDocument); afterEach(resetDocument); describe("AppearanceSync", () => { it("puts the chosen theme-color back after a route change", () => { const meta = document.createElement("meta"); meta.name = "theme-color"; document.head.append(meta); window.localStorage.setItem("apicore.contrast", "sun"); const { rerender } = render(); expect(meta.content).toBe("#ffffff"); meta.content = "#f9f4ea"; // Next's metadata update pathname = "/b"; rerender(); expect(meta.content).toBe("#ffffff"); }); });