diff --git a/assets/test-setup.ts b/assets/test-setup.ts new file mode 100644 index 00000000..b36c17f4 --- /dev/null +++ b/assets/test-setup.ts @@ -0,0 +1,15 @@ +// Node v25+ ships a built-in localStorage that lacks the Web Storage API +// (getItem/setItem/removeItem). Replace it with a spec-compliant shim so +// libraries like @vue/devtools-kit work correctly in tests. +const store = new Map(); + +globalThis.localStorage = { + getItem: (key: string) => store.get(key) ?? null, + setItem: (key: string, value: string) => store.set(key, String(value)), + removeItem: (key: string) => store.delete(key), + clear: () => store.clear(), + get length() { + return store.size; + }, + key: (index: number) => [...store.keys()][index] ?? null, +} as Storage; diff --git a/vite.config.ts b/vite.config.ts index a7d176f8..4212d287 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -89,5 +89,6 @@ export default defineConfig(() => ({ ], test: { include: ["assets/**/*.spec.ts"], + setupFiles: ["./assets/test-setup.ts"], }, }));