17 lines
1.0 KiB
TypeScript
17 lines
1.0 KiB
TypeScript
import { afterEach, expect, it, vi } from "vitest";
|
|
import { readPreference, writePreference } from "../src/preferences";
|
|
|
|
afterEach(() => vi.unstubAllGlobals());
|
|
it("accepts only known presentation preferences", () => {
|
|
const values = new Map<string, string>([["hub-density", "arbitrary"]]);
|
|
vi.stubGlobal("localStorage", { getItem: (key: string) => values.get(key) ?? null, setItem: (key: string, value: string) => values.set(key, value) });
|
|
expect(readPreference("hub-density", ["compact", "comfortable"], "comfortable")).toBe("comfortable");
|
|
writePreference("hub-density", "compact");
|
|
expect(readPreference("hub-density", ["compact", "comfortable"], "comfortable")).toBe("compact");
|
|
});
|
|
it("continues with safe defaults when storage is denied", () => {
|
|
vi.stubGlobal("localStorage", { getItem: () => { throw new Error("storage denied"); }, setItem: () => { throw new Error("storage denied"); } });
|
|
expect(readPreference("hub-theme", ["dark", "light"], "dark")).toBe("dark");
|
|
expect(() => writePreference("hub-theme", "light")).not.toThrow();
|
|
});
|