UNPKG

@interaktiv/dia-scripts

Version:

CLI toolbox with common scripts for most sort of projects at DIA

42 lines (34 loc) 1.59 kB
"use strict"; 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);