SurfSense/surfsense_web/vitest.setup.ts

43 lines
1.1 KiB
TypeScript

import '@testing-library/jest-dom';
import { cleanup } from '@testing-library/react';
import { afterEach, vi } from 'vitest';
import React from 'react';
// Cleanup after each test
afterEach(() => {
cleanup();
});
// Mock ResizeObserver (required for Radix UI components)
global.ResizeObserver = class ResizeObserver {
observe() { }
unobserve() { }
disconnect() { }
};
// Mock PointerEvent APIs for Radix UI Select
HTMLElement.prototype.hasPointerCapture = vi.fn(() => false);
HTMLElement.prototype.setPointerCapture = vi.fn();
HTMLElement.prototype.releasePointerCapture = vi.fn();
HTMLElement.prototype.scrollIntoView = vi.fn();
// Mock Next.js router
vi.mock('next/navigation', () => ({
useRouter: () => ({
push: vi.fn(),
replace: vi.fn(),
prefetch: vi.fn(),
back: vi.fn(),
pathname: '/',
query: {},
}),
usePathname: () => '/',
useSearchParams: () => new URLSearchParams(),
}));
// Mock Next.js Image component
vi.mock('next/image', () => ({
default: (props: any) => {
return React.createElement('img', props);
},
}));