UNPKG

just-scripts

Version:
60 lines 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jestTask = void 0; const just_task_1 = require("just-task"); const utils_1 = require("../utils"); const fs_1 = require("fs"); const supportsColor = require("supports-color"); function jestTask(options = {}) { const jestConfigFile = (0, just_task_1.resolveCwd)('./jest.config.js'); const packageConfigPath = process.cwd(); return function jest() { const jestCmd = (0, just_task_1.resolve)('jest/bin/jest.js'); const configFile = options.config || jestConfigFile; const configFileExists = configFile && (0, fs_1.existsSync)(configFile); let packageConfigExists = false; if (configFileExists) { just_task_1.logger.verbose(`Using jest config file ${configFile}`); } else { const packageConfig = (0, 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 = (0, 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.maxWorkers ? ['--maxWorkers', options.maxWorkers] : []), ...(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, (0, utils_1.encodeArgs)(args).join(' ')); return (0, 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