// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. /** @type {import('jest').Config} */ const config = { testPathIgnorePatterns: ['/node_modules/'], clearMocks: true, collectCoverageFrom: [ 'src/**/*.{js,jsx,ts,tsx}', ], coveragePathIgnorePatterns: [ '/node_modules/', 'mattermost-redux/src/selectors/create_selector', ], coverageReporters: ['json', 'lcov', 'text-summary'], fakeTimers: { doNotFake: ['performance'], }, moduleNameMapper: { '^@mattermost/(components)$': '/../platform/$1/src', '^@mattermost/(client)$': '/../platform/$1/src', '^@mattermost/(types)/(.*)$': '/../platform/$1/src/$2', '^@mattermost/shared/(.*)$': '/../platform/shared/src/$1', '^mattermost-redux/test/(.*)$': '/src/packages/mattermost-redux/test/$1', '^mattermost-redux/(.*)$': '/src/packages/mattermost-redux/src/$1', '^pdfjs-dist/.*': '/src/tests/pdfjs_mock.ts', '^.+\\.(jpg|jpeg|png|apng|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '/src/tests/image_url_mock.json', '^.+\\.(css|less|scss)$': 'identity-obj-proxy', '^.*i18n.*\\.(json)$': '/src/tests/i18n_mock.json', }, moduleDirectories: ['src', 'node_modules'], moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'], transformIgnorePatterns: [ 'node_modules/(?!react-native|react-router|pdfjs-dist|p-queue|p-timeout|@mattermost/compass-icons|cidr-regex|ip-regex|serialize-error)', ], transform: { '^.+\\.(js|jsx|ts|tsx|mjs)$': 'babel-jest', }, setupFiles: ['jest-canvas-mock'], setupFilesAfterEnv: ['/src/tests/setup_jest.ts'], testEnvironment: 'jsdom', testTimeout: 60000, testEnvironmentOptions: { url: 'http://localhost:8065', }, watchPlugins: [ 'jest-watch-typeahead/filename', 'jest-watch-typeahead/testname', ], snapshotFormat: { escapeString: true, printBasicPrototype: true, }, }; module.exports = config;