Warning, /firebird/packages/firebird-ng/src/test-setup.ts is written in an unsupported language. File is not indexed.
0001 // Test setup for Vitest
0002
0003 // Mock window.matchMedia for components that use it
0004 Object.defineProperty(window, 'matchMedia', {
0005 writable: true,
0006 value: (query: string) => ({
0007 matches: false,
0008 media: query,
0009 onchange: null,
0010 addListener: () => {},
0011 removeListener: () => {},
0012 addEventListener: () => {},
0013 removeEventListener: () => {},
0014 dispatchEvent: () => false,
0015 }),
0016 });
0017
0018 // Mock ResizeObserver if needed
0019 if (typeof ResizeObserver === 'undefined') {
0020 (globalThis as any).ResizeObserver = class ResizeObserver {
0021 observe() {}
0022 unobserve() {}
0023 disconnect() {}
0024 };
0025 }
0026
0027 // The test jsdom does not wire localStorage; ConfigProperty persists through it.
0028 if (typeof (globalThis as any).localStorage === 'undefined') {
0029 const store = new Map<string, string>();
0030 const localStoragePolyfill = {
0031 getItem: (key: string) => store.get(key) ?? null,
0032 setItem: (key: string, value: string) => { store.set(key, String(value)); },
0033 removeItem: (key: string) => { store.delete(key); },
0034 clear: () => store.clear(),
0035 key: (index: number) => [...store.keys()][index] ?? null,
0036 get length() { return store.size; },
0037 };
0038 Object.defineProperty(globalThis, 'localStorage', { value: localStoragePolyfill, writable: true });
0039 Object.defineProperty(window, 'localStorage', { value: localStoragePolyfill, writable: true });
0040 }