|
1 | 1 | import { afterEach, describe, expect, it, vi } from "vitest"; |
2 | 2 |
|
3 | | -async function loadStorageModule() { |
4 | | - vi.resetModules(); |
5 | | - return import("../src/storage"); |
6 | | -} |
| 3 | +import { |
| 4 | + createMemoryStorageAdapter, |
| 5 | + getDefaultStorageAdapter, |
| 6 | + getLocalStorageAdapter, |
| 7 | +} from "../src/storage"; |
7 | 8 |
|
8 | 9 | describe("storage adapters", () => { |
9 | 10 | afterEach(() => { |
10 | 11 | vi.unstubAllGlobals(); |
11 | 12 | }); |
12 | 13 |
|
13 | | - it("noop adapter ignores writes", async () => { |
14 | | - const { createNoopStorageAdapter } = await loadStorageModule(); |
15 | | - const adapter = createNoopStorageAdapter(); |
| 14 | + it("memory adapter stores and retrieves values", async () => { |
| 15 | + const adapter = createMemoryStorageAdapter(); |
16 | 16 |
|
17 | 17 | expect(await adapter.getItem("key")).toBeNull(); |
18 | 18 | await adapter.setItem("key", "value"); |
19 | | - expect(await adapter.getItem("key")).toBeNull(); |
| 19 | + expect(await adapter.getItem("key")).toBe("value"); |
20 | 20 |
|
21 | 21 | await adapter.removeItem?.("key"); |
22 | 22 | expect(await adapter.getItem("key")).toBeNull(); |
23 | 23 | }); |
24 | 24 |
|
25 | | - it("localStorage adapter throws when localStorage is unavailable", async () => { |
26 | | - const { getLocalStorageAdapter } = await loadStorageModule(); |
| 25 | + it("localStorage adapter throws when localStorage is unavailable", () => { |
27 | 26 | vi.stubGlobal("localStorage", undefined); |
28 | 27 | expect(() => getLocalStorageAdapter()).toThrowError( |
29 | 28 | "localStorage is not available. Provide a custom storage adapter.", |
30 | 29 | ); |
31 | 30 | }); |
32 | 31 |
|
33 | | - it("default adapter falls back to noop on server runtimes", async () => { |
34 | | - vi.resetModules(); |
35 | | - vi.stubGlobal("window", undefined); |
36 | | - vi.stubGlobal("document", undefined); |
| 32 | + it("default adapter falls back when localStorage is unavailable", async () => { |
37 | 33 | vi.stubGlobal("localStorage", undefined); |
38 | | - |
39 | | - const { getDefaultStorageAdapter } = await import("../src/storage"); |
40 | 34 | const adapter = getDefaultStorageAdapter(); |
41 | 35 |
|
42 | 36 | await adapter.setItem("fallback", "ok"); |
43 | | - expect(await adapter.getItem("fallback")).toBeNull(); |
| 37 | + expect(await adapter.getItem("fallback")).toBe("ok"); |
44 | 38 | }); |
45 | 39 | }); |
0 commit comments