import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import { createStorageWrapper } from './storage-wrapper'; describe('createStorageWrapper', () => { let hasPrevious: boolean; let previous: any; beforeEach(() => { hasPrevious = 'localStorage' in globalThis; previous = globalThis.localStorage; }); afterEach(() => { if (hasPrevious) { globalThis.localStorage = previous; } else { Reflect.deleteProperty(globalThis, 'localStorage'); } Reflect.deleteProperty(globalThis, '__i18nStorage'); }); it('uses global localStorage if available', () => { const mock: any = {}; globalThis.localStorage = mock; expect(createStorageWrapper()).toBe(mock); }); it('uses cached storage if available', () => { const mock: any = {}; Reflect.deleteProperty(globalThis, 'localStorage'); globalThis.__i18nStorage = mock; expect(createStorageWrapper()).toBe(mock); }); it('creates new storage if needed', () => { const mock: any = {}; Reflect.deleteProperty(globalThis, 'localStorage'); Reflect.deleteProperty(globalThis, '__i18nStorage'); const original = globalThis.__i18nStorage; globalThis.__i18nStorage = mock; expect(createStorageWrapper()).toBe(mock); globalThis.__i18nStorage = original; }); });