import { describe, expect, it, vi } from "vitest"; import { restrictLocalStorageToTrustedContexts } from "./storage-access"; describe("local storage access hardening", () => { it("restricts local storage to trusted extension contexts when supported", async () => { const setAccessLevel = vi.fn(async () => undefined); vi.stubGlobal("chrome", { storage: { local: { setAccessLevel } } }); await restrictLocalStorageToTrustedContexts(); expect(setAccessLevel).toHaveBeenCalledWith({ accessLevel: "TRUSTED_CONTEXTS" }); }); it("does not fail startup when Firefox lacks setAccessLevel", async () => { vi.stubGlobal("chrome", { storage: { local: {} } }); await expect(restrictLocalStorageToTrustedContexts()).resolves.toBeUndefined(); }); it("does not fail startup when the browser rejects the optional hardening call", async () => { const setAccessLevel = vi.fn(async () => { throw new Error("unsupported"); }); vi.stubGlobal("chrome", { storage: { local: { setAccessLevel } } }); await expect(restrictLocalStorageToTrustedContexts()).resolves.toBeUndefined(); }); });