Spaces:
Sleeping
Sleeping
Sync from enhance: d795216 feat: implement patch response parser for search and replace functionality
9bd4242 | import '@testing-library/jest-dom/vitest' | |
| import { beforeEach } from 'vitest' | |
| function createStorageMock(): Storage { | |
| const store = new Map<string, string>() | |
| return { | |
| getItem(key: string) { | |
| return store.has(key) ? store.get(key)! : null | |
| }, | |
| setItem(key: string, value: string) { | |
| store.set(String(key), String(value)) | |
| }, | |
| removeItem(key: string) { | |
| store.delete(String(key)) | |
| }, | |
| clear() { | |
| store.clear() | |
| }, | |
| key(index: number) { | |
| return Array.from(store.keys())[index] ?? null | |
| }, | |
| get length() { | |
| return store.size | |
| } | |
| } | |
| } | |
| function ensureStorage(name: 'localStorage' | 'sessionStorage'): Storage { | |
| const current = window[name] | |
| if (current && typeof current.getItem === 'function' && typeof current.setItem === 'function') { | |
| return current | |
| } | |
| const storage = createStorageMock() | |
| Object.defineProperty(window, name, { | |
| value: storage, | |
| configurable: true | |
| }) | |
| Object.defineProperty(globalThis, name, { | |
| value: storage, | |
| configurable: true | |
| }) | |
| return storage | |
| } | |
| const localStorageMock = ensureStorage('localStorage') | |
| const sessionStorageMock = ensureStorage('sessionStorage') | |
| beforeEach(() => { | |
| localStorageMock.clear() | |
| sessionStorageMock.clear() | |
| }) | |