UNPKG

@interaktiv/dia-scripts

Version:

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

56 lines (42 loc) 1.82 kB
"use strict"; process.env.BABEL_ENV = 'test'; process.env.NODE_ENV = 'test'; const path = require('path'); const exit = require('exit'); const spawn = require('cross-spawn'); const mkdirp = require('mkdirp'); const isCI = require('is-ci'); const yargsParser = require('yargs-parser'); const { fromRoot, resolveBin, envIsSet, parseEnv } = require('../../utils'); const rawArgv = process.argv.slice(2); const args = yargsParser(rawArgv); let argv = rawArgv; const filesGiven = args._.length > 0; if (filesGiven) argv = argv.filter(a => args._.includes(a) === false); let user = []; if (envIsSet('SCRATCH_ORG_NAME') && argv.includes('--targetusername') === false) { user = ['--targetusername', parseEnv('SCRATCH_ORG_NAME')]; } let coverage = []; if (argv.includes('--coverage')) { coverage = ['--codecoverage']; argv = argv.filter(a => a !== '--coverage'); } let format = ['--resultformat', 'human']; if (isCI) format = ['--resultformat', 'junit']; if (argv.includes('--resultformat')) format = []; const builtinOutputDir = fromRoot('test-reports', 'apex'); const useBuiltinOutputDir = argv.includes('--outputdir') === false; const outputDir = useBuiltinOutputDir ? ['--outputdir', builtinOutputDir] : []; mkdirp.sync(path.dirname(useBuiltinOutputDir ? builtinOutputDir : args.outputdir)); const wait = argv.includes('--wait') ? [] : ['--wait', '10']; // TODO: Find a way to simulate Jest's `--findRelatedTests` and run tests according to given source files. In the meantime run all local tests on pre-commit const testLevel = argv.includes('--testlevel') ? [] : ['--testlevel', 'RunLocalTests']; const result = spawn.sync(resolveBin('sfdx'), ['force:apex:test:run', ...user, ...coverage, ...format, ...outputDir, ...wait, ...testLevel, ...argv], { stdio: 'inherit' }); exit(result.status);