npm i -D identity-obj-proxy lodash @types/lodash
import { readFileSync } from 'fs';
import JSON5 from 'json5';
import { pathsToModuleNameMapper } from 'ts-jest';
import type { Config } from '@jest/types';
const fileContent = readFileSync('./tsconfig.json');
const fileContentJSON = JSON5.parse(fileContent.toString());
const config: Config.InitialOptions = {
clearMocks: true,
resetMocks: true,
restoreMocks: true,
preset: 'ts-jest',
testEnvironment: 'jsdom',
testRegex: '[/\\\\]src[/\\\\].*\\.(?:test|spec)\\.[jt]sx?$',
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
moduleDirectories: ['node_modules', '<rootDir>'],
moduleNameMapper: {
...pathsToModuleNameMapper(fileContentJSON.compilerOptions.paths),
'^lodash-es$': 'lodash',
'^exchange-elements/v2$': '<rootDir>/node_modules/exchange-elements/dist/v2.cjs.js',
'\\.module\\.(?:css|scss|sass)$': 'identity-obj-proxy',
'\\.(?:css|scss|sass)$': '<rootDir>/__mocks__/styleMock.cjs',
},
coverageDirectory: '<rootDir>/coverage',
coverageReporters: ['text', 'lcov'],
};
export default config;