Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion website/js/notification-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ class NotificationManager {
toast.style.transform = 'translateY(-20px)';

// Respect reduced motion preference
const reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
const reduceMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches;
if (reduceMotion) {
toast.style.transition = 'none';
}
Expand Down
21 changes: 15 additions & 6 deletions website/test/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,21 @@ if (typeof navigator !== 'undefined') {
});
}

// Optional: matchMedia stub
// Enhanced matchMedia mock for proper test environment support
// Only override if matchMedia is not already available (e.g., in certain test environments)
if (!window.matchMedia) {
window.matchMedia = vi.fn().mockReturnValue({
matches: false,
addEventListener: vi.fn(),
removeEventListener: vi.fn()
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: vi.fn().mockImplementation(query => ({
matches: false,
media: query,
onchange: null,
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
addListener: vi.fn(), // Deprecated since Chrome 64, Firefox 65, Safari 14; use addEventListener instead. Included for legacy code compatibility.
removeListener: vi.fn(), // Deprecated since Chrome 64, Firefox 65, Safari 14; use removeEventListener instead. Included for legacy code compatibility.
dispatchEvent: vi.fn()
}))
});
}

Expand All @@ -58,4 +67,4 @@ afterEach(() => {
vi.restoreAllMocks();
vi.clearAllMocks();
document.body.innerHTML = '';
});
});
Loading