-
Notifications
You must be signed in to change notification settings - Fork 0
/
jest.setup.tsx
36 lines (31 loc) · 1.16 KB
/
jest.setup.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import '@testing-library/jest-dom/jest-globals';
import { ReadonlyURLSearchParams, RedirectType } from 'next/navigation';
import { TextDecoder, TextEncoder } from 'node:util';
// Global mocks
jest.mock<typeof import('next/navigation')>('next/navigation', () => {
const actual = jest.requireActual<typeof import('next/navigation')>('next/navigation');
return {
...actual,
usePathname: jest.fn(),
redirect: jest.fn() as unknown as (u: string, t?: RedirectType) => never,
useRouter: jest.fn().mockReturnValue({
push: jest.fn(),
replace: jest.fn(),
}),
notFound: jest.fn() as unknown as () => never,
useSearchParams: () =>
({
// eslint-disable-next-line no-empty-function, @typescript-eslint/no-empty-function
get: () => {},
}) as unknown as ReadonlyURLSearchParams,
};
});
global.TextEncoder = TextEncoder;
// @ts-expect-error Can be ignored as it only serves the purpose of mocking react-leaflet
global.TextDecoder = TextDecoder;
// eslint-disable-next-line jest/prefer-spy-on
global.ResizeObserver = jest.fn().mockImplementation(() => ({
observe: jest.fn(),
unobserve: jest.fn(),
disconnect: jest.fn(),
}));