/* This file is automatically executed before running tests * https://create-react-app.dev/docs/running-tests/#initializing-test-environment */ // react-testing-library renders your components to document.body, // this adds jest-dom's custom assertions // https://github.com/testing-library/jest-dom#table-of-contents import '@testing-library/jest-dom'; // jest-dom adds custom jest matchers for asserting on DOM nodes. // allows you to do things like: // expect(element).toHaveTextContent(/react/i) // learn more: https://github.com/testing-library/jest-dom import '@testing-library/jest-dom/extend-expect'; // Mock canvas when run unit test cases with jest. // 'react-lottie' uses canvas import 'jest-canvas-mock'; // Mock ResizeObserver import './resizeObserver.mock'; // Mock window.matchMedia Object.defineProperty(window, 'matchMedia', { writable: true, value: jest.fn().mockImplementation((query) => ({ matches: false, media: query, onchange: null, addListener: jest.fn(), // deprecated removeListener: jest.fn(), // deprecated addEventListener: jest.fn(), removeEventListener: jest.fn(), dispatchEvent: jest.fn(), })), }); beforeEach(() => { jest.clearAllMocks(); }); jest.mock('react-i18next', () => { const actual = jest.requireActual('react-i18next'); return { ...actual, useTranslation: () => { const i18n = require('~/locales/i18n').default; return { t: (key, options) => i18n.t(key, options), i18n: { ...i18n, changeLanguage: jest.fn(), }, }; }, initReactI18next: { type: '3rdParty', init: jest.fn(), }, }; });