feat(INDA-383): daily stats.
[ProtonMail-WebClient.git] / applications / wallet / vitest.setup.ts
blob650401ef6477c55c2fc9c23fea8be922854867c1
1 import '@testing-library/jest-dom';
2 import { cleanup } from '@testing-library/react';
3 import { vi } from 'vitest';
5 import '@proton/testing/lib/vitest/mockMatchMedia';
6 import '@proton/testing/lib/vitest/mockUnleash';
8 // @ts-ignore
9 global.IS_REACT_ACT_ENVIRONMENT = true;
11 afterEach(cleanup); // TODO double check if needed; see https://github.com/vitest-dev/vitest/issues/1430
12 // Silence warnings on expect to throw https://github.com/testing-library/react-testing-library/issues/157
13 // console.error = () => {};
14 // console.warn = () => {};
16 window.ResizeObserver = vi.fn().mockImplementation(() => ({
17     observe: vi.fn(),
18     unobserve: vi.fn(),
19     disconnect: vi.fn(),
20 }));
22 // JSDom does not include a full implementation of webcrypto
23 // const crypto = require('crypto').webcrypto;
24 // global.crypto.subtle = crypto.subtle;
26 // Do not start crypto worker pool, let the single tests setup/mock the CryptoProxy as needed
27 vi.mock('@proton/shared/lib/helpers/setupCryptoWorker', () => ({
28     __esModule: true,
29     loadCryptoWorker: vi.fn(),
30 }));
32 // Globally mocked @proton/components modules
33 vi.mock('@proton/components/hooks/useEventManager.ts', () => {
34     const subscribe = vi.fn();
35     const call = vi.fn();
36     const stop = vi.fn();
37     const start = vi.fn();
39     const result = () => {
40         return { subscribe, call, stop, start };
41     };
43     result.subscribe = subscribe;
44     result.call = call;
45     result.stop = stop;
46     result.start = start;
48     return { default: result };
49 });
51 // Globally mocked upload helper (standard requests are mocked through context)
52 vi.mock('./src/app/helpers/upload');
54 // @ts-ignore
55 global.MutationObserver = class {
56     disconnect() {} // eslint-disable-line
57     observe() {} // eslint-disable-line
60 // Mock backdrop container because it's always rendered, and it's rendered in a portal which causes issues with the hook renderer
61 vi.mock('@proton/components/components/modalTwo/BackdropContainer', () => ({
62     __esModule: true,
63     default: () => null,
64 }));
66 // Silence JDOM warnings triggered by emoji-mart
67 // @ts-ignore
68 HTMLCanvasElement.prototype.getContext = vi.fn();
70 vi.mock('@proton/shared/lib/i18n/dateFnLocales', () => ({
71     __esModule: true,
72     enUSLocale: { code: 'en-US' },
73 }));
75 vi.mock('@proton/shared/lib/pow/wasmWorkerWrapper.ts', () => ({
76     __esModule: true,
77 }));
79 vi.mock('@proton/shared/lib/pow/pbkdfWorkerWrapper.ts', () => ({
80     __esModule: true,
81 }));