@interaktiv/dia-scripts
Version:
CLI toolbox with common scripts for most sort of projects at DIA
42 lines (34 loc) • 1.59 kB
JavaScript
;
process.env.BABEL_ENV = 'test';
process.env.NODE_ENV = 'test';
const exit = require('exit');
const isCI = require('is-ci');
const yargsParser = require('yargs-parser');
const spawn = require('cross-spawn');
const {
hasPkgProp,
parseEnv,
hasFile,
ifSfdxProject,
resolveBin
} = require('../../utils');
const rawArgv = process.argv.slice(2);
const args = yargsParser(rawArgv);
let argv = rawArgv;
const filesGiven = args._.length > 0;
const filesToApply = filesGiven ? args._ : [];
if (filesGiven) argv = argv.filter(a => args._.includes(a) === false);
const watch = isCI === false && parseEnv('SCRIPTS_PRE-COMMIT', false) === false && argv.includes('--no-watch') === false && argv.includes('--coverage') === false && argv.includes('--updateSnapshot') === false ? ['--watch'] : [];
const useBuiltInConfig = argv.includes('--config') === false && hasFile('jest.config.js') === false && hasPkgProp('jest') === false;
const config = useBuiltInConfig ? ['--config', JSON.stringify(require('../../config/jest.config'))] : [];
const passWithNoTests = argv.includes('--force-tests') ? [] : ['--passWithNoTests'];
const bin = ifSfdxProject(['@salesforce/lwc-jest', {
executable: 'lwc-jest'
}], ['jest']); // Filter out custom flags
argv = argv.filter(a => ['--no-watch', '--force-tests'].includes(a) === false);
const argsSeparator = ifSfdxProject(['--'], []);
const cmdArgs = [...watch, ...argsSeparator, ...config, ...passWithNoTests, ...argv, ...filesToApply];
const result = spawn.sync(resolveBin(...bin), cmdArgs, {
stdio: 'inherit'
});
exit(result.status);