just-scripts
Version:
Just Stack Scripts
59 lines • 3.18 kB
JavaScript
;
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 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.testPathPatterns ? ['--testPathPatterns', options.testPathPatterns] : []),
...(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);
(0, utils_1.logNodeCommand)(args);
return (0, utils_1.spawn)(process.execPath, args, { stdio: 'inherit', env: options.env });
}
just_task_1.logger.warn('no jest configuration found, skipping jest');
// undertaker apparently requires returning a promise, async function, or function that calls done()
return Promise.resolve();
};
}
exports.jestTask = jestTask;
//# sourceMappingURL=jestTask.js.map