From 1a668627a3dd763b532a6d83b14a98eca51ead42 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Wed, 18 Feb 2026 19:37:01 -0600 Subject: [PATCH] test(web): silence localStorage-file warnings in vitest setup --- apps/web/vitest.setup.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/apps/web/vitest.setup.ts b/apps/web/vitest.setup.ts index 4523022..92165be 100644 --- a/apps/web/vitest.setup.ts +++ b/apps/web/vitest.setup.ts @@ -24,3 +24,33 @@ Object.defineProperty(window, "matchMedia", { dispatchEvent: () => false, }), }); + +// Ensure localStorage exists with a full Storage API for tests. +// Avoid touching the built-in accessor (which emits warnings in Node). +let storageStore: Record = {}; +const storageMock: Storage = { + getItem: (key: string): string | null => storageStore[key] ?? null, + setItem: (key: string, value: string): void => { + storageStore[key] = value; + }, + removeItem: (key: string): void => { + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete storageStore[key]; + }, + clear: (): void => { + storageStore = {}; + }, + get length(): number { + return Object.keys(storageStore).length; + }, + key: (index: number): string | null => { + const keys = Object.keys(storageStore); + return keys[index] ?? null; + }, +}; + +Object.defineProperty(window, "localStorage", { + value: storageMock, + writable: true, + configurable: true, +});