storage-access.test.ts

1.1 KB · raw

1import { describe, expect, it, vi } from "vitest";23import { restrictLocalStorageToTrustedContexts } from "./storage-access";45describe("local storage access hardening", () => {6  it("restricts local storage to trusted extension contexts when supported", async () => {7    const setAccessLevel = vi.fn(async () => undefined);8    vi.stubGlobal("chrome", { storage: { local: { setAccessLevel } } });910    await restrictLocalStorageToTrustedContexts();1112    expect(setAccessLevel).toHaveBeenCalledWith({ accessLevel: "TRUSTED_CONTEXTS" });13  });1415  it("does not fail startup when Firefox lacks setAccessLevel", async () => {16    vi.stubGlobal("chrome", { storage: { local: {} } });1718    await expect(restrictLocalStorageToTrustedContexts()).resolves.toBeUndefined();19  });2021  it("does not fail startup when the browser rejects the optional hardening call", async () => {22    const setAccessLevel = vi.fn(async () => { throw new Error("unsupported"); });23    vi.stubGlobal("chrome", { storage: { local: { setAccessLevel } } });2425    await expect(restrictLocalStorageToTrustedContexts()).resolves.toBeUndefined();26  });27});