Загрузка данных


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',
    '^.+\\.m?js$': [
      'babel-jest',
      {
        presets: [
          [
            '@babel/preset-env',
            {
              targets: { node: 'current' },
              modules: 'commonjs',
            },
          ],
        ],
      },
    ],
  },
  transformIgnorePatterns: [
    '[/\\\\]node_modules[/\\\\](?!(?:lightweight-charts|fancy-canvas)(?:[/\\\\]|$))',
  ],
  moduleDirectories: ['node_modules', '<rootDir>'],
  moduleNameMapper: {
    ...pathsToModuleNameMapper(fileContentJSON.compilerOptions.paths),
    '^lodash-es$': 'lodash',
    '^lightweight-charts$':
      '<rootDir>/node_modules/lightweight-charts/dist/lightweight-charts.development.mjs',
    '^exchange-elements/v2$':
      '<rootDir>/node_modules/exchange-elements/dist/v2.cjs.js',
    '\\.module\\.(?:css|scss|sass)$': 'identity-obj-proxy',
    '\\.(?:css|scss|sass)$': '<rootDir>/src/__mocks__/styleMock.cjs',
  },
  coverageDirectory: '<rootDir>/coverage',
  coverageReporters: ['text', 'lcov'],
};

export default config;


npm i -D babel-jest@29.7.0