vant/packages/vant-cli/src/config/jest.config.ts

43 lines
1.1 KiB
TypeScript

import { join } from 'path';
import { existsSync } from 'fs-extra';
import {
ROOT,
JEST_SETUP_FILE,
JEST_FILE_MOCK_FILE,
JEST_STYLE_MOCK_FILE,
} from '../common/constant';
const DEFAULT_CONFIG = {
moduleNameMapper: {
'\\.(css|less|scss)$': JEST_STYLE_MOCK_FILE,
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': JEST_FILE_MOCK_FILE,
},
setupFilesAfterEnv: [JEST_SETUP_FILE],
moduleFileExtensions: ['js', 'jsx', 'vue', 'ts', 'tsx'],
transform: {
'\\.(vue)$': 'vue-jest',
'\\.(js|jsx|ts|tsx)$': 'babel-jest',
},
transformIgnorePatterns: ['/node_modules/(?!(@vant/cli))/'],
snapshotSerializers: ['jest-serializer-vue'],
collectCoverage: true,
collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx,vue}', '!**/demo/**'],
coverageReporters: ['html', 'lcov', 'text-summary'],
coverageDirectory: './test/coverage',
};
function readRootConfig() {
const ROOT_CONFIG_PATH = join(ROOT, 'jest.config.js');
if (existsSync(ROOT_CONFIG_PATH)) {
return require(ROOT_CONFIG_PATH);
}
return {};
}
module.exports = {
...DEFAULT_CONFIG,
...readRootConfig(),
};