Aller au contenu principal

mockWindow()

mockWindow(overrides): MockWindowResult

Creates a mock window object on globalThis for Node.js tests.

remarque

Always call restore() for cleanup. Auto-restored after each test if forgotten.


Parameters

overrides: Partial<Window> = {}

Properties to set on the mock window.


Returns: MockWindowResult

Object containing the mock window and restore function.


Since

2.0.0


Example

const { window, restore } = mockWindow({ innerWidth: 1024 });
expect(window.innerWidth).toBe(1024);
restore();

Use Cases

Mock window properties 📌

Safely override window properties for Node.js-based tests. Essential for testing responsive design logic or window event handlers.

const { restore } = mockWindow({
innerWidth: 768,
innerHeight: 1024
});

expect(isMobile()).toBe(true);
restore();

Simulate different viewports

Test responsive breakpoints and layout changes.

const { restore } = mockWindow({ innerWidth: 1920 });
expect(getBreakpoint()).toBe('desktop');
restore();

const { restore: restore2 } = mockWindow({ innerWidth: 375 });
expect(getBreakpoint()).toBe('mobile');
restore2();

Mock storage APIs

Test localStorage/sessionStorage interactions.

const storage = new Map();
const { restore } = mockWindow({
localStorage: {
getItem: (k) => storage.get(k),
setItem: (k, v) => storage.set(k, v)
}
});

savePreference('theme', 'dark');
expect(storage.get('theme')).toBe('dark');
restore();

MockWindowResult

Interface

Result of mockWindow().


Since

2.0.0


Properties

window: any

restore(): () => void

Returns

void