@interaktiv/dia-scripts
Version:
CLI toolbox with common scripts for most sort of projects at DIA
73 lines (60 loc) • 2.04 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
const path = require('path');
const {
fromRoot,
hasFile,
hasPkgProp,
ifAnyDep,
ifCI,
isSfdxProject
} = require('../utils');
const here = p => path.join(__dirname, p);
function getNonLwcConfig() {
const useBuiltInBabelConfig = hasFile('.babelrc') === false && hasPkgProp('babel') === false;
const ignores = ['/node_modules/', '/fixtures/', '/__tests__/helpers/', '__mocks__', '__tmp__'];
const reporters = ['default', ifCI(['jest-junit', {
outputDirectory: fromRoot('test-reports'),
ancestorSeparator: ' › '
}], null)].filter(Boolean);
const jestConfig = {
roots: [fromRoot('src')],
testEnvironment: ifAnyDep(['webpack', 'rollup', 'react'], 'jsdom', 'node'),
testURL: 'http://localhost',
moduleFileExtensions: ['js', 'jsx', 'json', 'ts', 'tsx'],
collectCoverageFrom: ['src/**/*.+(js|jsx|ts|tsx)'],
testPathIgnorePatterns: [...ignores],
coveragePathIgnorePatterns: [...ignores, 'src/(umd|cjs|esm)-entry.js$'],
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$'],
coverageThreshold: {
global: {
branches: 75,
functions: 75,
lines: 75,
statements: 75
}
},
reporters: [...reporters],
watchPlugins: [require.resolve('jest-watch-typeahead/filename'), require.resolve('jest-watch-typeahead/testname')]
};
if (hasFile('tests/setup-env.js')) {
jestConfig.setupFilesAfterEnv = [fromRoot('tests/setup-env.js')];
}
if (useBuiltInBabelConfig) {
jestConfig.transform = {
'^.+\\.js$': here('./babel-transform')
};
}
return jestConfig;
}
let jestConfig;
if (isSfdxProject()) {
const {
jestConfig: lwcJestConfig
} = require('@salesforce/lwc-jest/config');
jestConfig = (0, _extends2.default)({}, lwcJestConfig);
} else {
jestConfig = getNonLwcConfig();
}
module.exports = jestConfig;