UNPKG

just-scripts

Version:
59 lines 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jestTask = void 0; const just_task_1 = require("just-task"); const just_scripts_utils_1 = require("just-scripts-utils"); const fs_1 = require("fs"); const supportsColor = require("supports-color"); function jestTask(options = {}) { const jestConfigFile = just_task_1.resolveCwd('./jest.config.js'); const packageConfigPath = process.cwd(); return function jest() { const jestCmd = just_task_1.resolve('jest/bin/jest.js'); const configFile = options.config || jestConfigFile; const configFileExists = configFile && fs_1.existsSync(configFile); let packageConfigExists = false; if (configFileExists) { just_task_1.logger.verbose(`Using jest config file ${configFile}`); } else { const packageConfig = just_scripts_utils_1.readPackageJson(packageConfigPath); if (packageConfig && packageConfig.jest) { packageConfigExists = true; just_task_1.logger.verbose(`Using jest config from package.json`); } } if ((configFileExists || packageConfigExists) && jestCmd) { just_task_1.logger.info(`Running Jest`); const cmd = process.execPath; const positional = just_task_1.argv()._.slice(1); const args = [ ...(options.nodeArgs || []), jestCmd, ...(configFileExists ? ['--config', configFile] : []), ...(options.rootDir ? ['--rootDir', options.rootDir] : []), ...(options.passWithNoTests ? ['--passWithNoTests'] : []), ...(options.clearCache ? ['--clearCache'] : []), ...(options.colors !== false && supportsColor.stdout ? ['--colors'] : []), ...(options.runInBand ? ['--runInBand'] : []), ...(options.coverage ? ['--coverage'] : []), ...(options.watch ? ['--watch'] : []), ...(options.silent ? ['--silent'] : []), ...(options.testPathPattern ? ['--testPathPattern', options.testPathPattern] : []), ...(options.testNamePattern ? ['--testNamePattern', options.testNamePattern] : []), ...(options.u || options.updateSnapshot ? ['--updateSnapshot'] : ['']), // Only include the positional args if `options._` wasn't specified // (to avoid possibly including them twice) ...(options._ || positional), ].filter(arg => !!arg); just_task_1.logger.info(cmd, just_scripts_utils_1.encodeArgs(args).join(' ')); return just_scripts_utils_1.spawn(cmd, args, { stdio: 'inherit', env: options.env }); } else { just_task_1.logger.warn('no jest configuration found, skipping jest'); return Promise.resolve(); } }; } exports.jestTask = jestTask; //# sourceMappingURL=jestTask.js.map