75 lines
1.6 KiB
TypeScript
75 lines
1.6 KiB
TypeScript
import '@testing-library/jest-dom/vitest';
|
|
import { cleanup } from '@testing-library/svelte';
|
|
import { afterEach, beforeAll, vi } from 'vitest';
|
|
import { navigatingStore, pageStore, resetMockPage, updatedStore } from './src/test/mocks/app-stores';
|
|
|
|
vi.mock('$app/stores', () => ({
|
|
page: { subscribe: pageStore.subscribe },
|
|
navigating: { subscribe: navigatingStore.subscribe },
|
|
updated: updatedStore
|
|
}));
|
|
|
|
vi.mock('canvas-confetti', () => ({
|
|
default: vi.fn()
|
|
}));
|
|
|
|
class MockIntersectionObserver {
|
|
observe() {}
|
|
unobserve() {}
|
|
disconnect() {}
|
|
}
|
|
|
|
class MockResizeObserver {
|
|
observe() {}
|
|
unobserve() {}
|
|
disconnect() {}
|
|
}
|
|
|
|
beforeAll(() => {
|
|
Object.defineProperty(window, 'matchMedia', {
|
|
writable: true,
|
|
value: vi.fn().mockImplementation((query: string) => ({
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
addListener: vi.fn(),
|
|
removeListener: vi.fn(),
|
|
addEventListener: vi.fn(),
|
|
removeEventListener: vi.fn(),
|
|
dispatchEvent: vi.fn()
|
|
}))
|
|
});
|
|
|
|
Object.defineProperty(window, 'scrollTo', {
|
|
writable: true,
|
|
value: vi.fn()
|
|
});
|
|
|
|
Object.defineProperty(window, 'requestAnimationFrame', {
|
|
writable: true,
|
|
value: vi.fn(() => 0)
|
|
});
|
|
|
|
Object.defineProperty(window, 'cancelAnimationFrame', {
|
|
writable: true,
|
|
value: vi.fn()
|
|
});
|
|
|
|
Object.defineProperty(globalThis, 'IntersectionObserver', {
|
|
writable: true,
|
|
value: MockIntersectionObserver
|
|
});
|
|
|
|
Object.defineProperty(globalThis, 'ResizeObserver', {
|
|
writable: true,
|
|
value: MockResizeObserver
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
cleanup();
|
|
resetMockPage();
|
|
vi.clearAllMocks();
|
|
document.head.innerHTML = '';
|
|
});
|