123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.run = run;
- exports.buildArgv = void 0;
-
- function path() {
- const data = _interopRequireWildcard(require('path'));
-
- path = function () {
- return data;
- };
-
- return data;
- }
-
- function _chalk() {
- const data = _interopRequireDefault(require('chalk'));
-
- _chalk = function () {
- return data;
- };
-
- return data;
- }
-
- function _exit() {
- const data = _interopRequireDefault(require('exit'));
-
- _exit = function () {
- return data;
- };
-
- return data;
- }
-
- function _yargs() {
- const data = _interopRequireDefault(require('yargs'));
-
- _yargs = function () {
- return data;
- };
-
- return data;
- }
-
- function _core() {
- const data = require('@jest/core');
-
- _core = function () {
- return data;
- };
-
- return data;
- }
-
- function _jestConfig() {
- const data = require('jest-config');
-
- _jestConfig = function () {
- return data;
- };
-
- return data;
- }
-
- function _jestUtil() {
- const data = require('jest-util');
-
- _jestUtil = function () {
- return data;
- };
-
- return data;
- }
-
- function _jestValidate() {
- const data = require('jest-validate');
-
- _jestValidate = function () {
- return data;
- };
-
- return data;
- }
-
- function _init() {
- const data = _interopRequireDefault(require('../init'));
-
- _init = function () {
- return data;
- };
-
- return data;
- }
-
- var args = _interopRequireWildcard(require('./args'));
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {default: obj};
- }
-
- function _getRequireWildcardCache(nodeInterop) {
- if (typeof WeakMap !== 'function') return null;
- var cacheBabelInterop = new WeakMap();
- var cacheNodeInterop = new WeakMap();
- return (_getRequireWildcardCache = function (nodeInterop) {
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
- })(nodeInterop);
- }
-
- function _interopRequireWildcard(obj, nodeInterop) {
- if (!nodeInterop && obj && obj.__esModule) {
- return obj;
- }
- if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
- return {default: obj};
- }
- var cache = _getRequireWildcardCache(nodeInterop);
- if (cache && cache.has(obj)) {
- return cache.get(obj);
- }
- var newObj = {};
- var hasPropertyDescriptor =
- Object.defineProperty && Object.getOwnPropertyDescriptor;
- for (var key in obj) {
- if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor
- ? Object.getOwnPropertyDescriptor(obj, key)
- : null;
- if (desc && (desc.get || desc.set)) {
- Object.defineProperty(newObj, key, desc);
- } else {
- newObj[key] = obj[key];
- }
- }
- }
- newObj.default = obj;
- if (cache) {
- cache.set(obj, newObj);
- }
- return newObj;
- }
-
- /**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- async function run(maybeArgv, project) {
- try {
- const argv = buildArgv(maybeArgv);
-
- if (argv.init) {
- await (0, _init().default)();
- return;
- }
-
- const projects = getProjectListFromCLIArgs(argv, project);
- const {results, globalConfig} = await (0, _core().runCLI)(argv, projects);
- readResultsAndExit(results, globalConfig);
- } catch (error) {
- (0, _jestUtil().clearLine)(process.stderr);
- (0, _jestUtil().clearLine)(process.stdout);
-
- if (error !== null && error !== void 0 && error.stack) {
- console.error(_chalk().default.red(error.stack));
- } else {
- console.error(_chalk().default.red(error));
- }
-
- (0, _exit().default)(1);
- throw error;
- }
- }
-
- const buildArgv = maybeArgv => {
- const version =
- (0, _core().getVersion)() +
- (__dirname.includes(`packages${path().sep}jest-cli`) ? '-dev' : '');
- const rawArgv = maybeArgv || process.argv.slice(2);
- const argv = (0, _yargs().default)(rawArgv)
- .usage(args.usage)
- .version(version)
- .alias('help', 'h')
- .options(args.options)
- .epilogue(args.docs)
- .check(args.check).argv;
- (0, _jestValidate().validateCLIOptions)(
- argv,
- {...args.options, deprecationEntries: _jestConfig().deprecationEntries}, // strip leading dashes
- Array.isArray(rawArgv)
- ? rawArgv.map(rawArgv => rawArgv.replace(/^--?/, ''))
- : Object.keys(rawArgv)
- ); // strip dashed args
-
- return Object.keys(argv).reduce(
- (result, key) => {
- if (!key.includes('-')) {
- result[key] = argv[key];
- }
-
- return result;
- },
- {
- $0: argv.$0,
- _: argv._
- }
- );
- };
-
- exports.buildArgv = buildArgv;
-
- const getProjectListFromCLIArgs = (argv, project) => {
- const projects = argv.projects ? argv.projects : [];
-
- if (project) {
- projects.push(project);
- }
-
- if (!projects.length && process.platform === 'win32') {
- try {
- projects.push((0, _jestUtil().tryRealpath)(process.cwd()));
- } catch {
- // do nothing, just catch error
- // process.binding('fs').realpath can throw, e.g. on mapped drives
- }
- }
-
- if (!projects.length) {
- projects.push(process.cwd());
- }
-
- return projects;
- };
-
- const readResultsAndExit = (result, globalConfig) => {
- const code = !result || result.success ? 0 : globalConfig.testFailureExitCode; // Only exit if needed
-
- process.on('exit', () => {
- if (typeof code === 'number' && code !== 0) {
- process.exitCode = code;
- }
- });
-
- if (globalConfig.forceExit) {
- if (!globalConfig.detectOpenHandles) {
- console.warn(
- _chalk().default.bold('Force exiting Jest: ') +
- 'Have you considered using `--detectOpenHandles` to detect ' +
- 'async operations that kept running after all tests finished?'
- );
- }
-
- (0, _exit().default)(code);
- } else if (!globalConfig.detectOpenHandles) {
- setTimeout(() => {
- console.warn(
- _chalk().default.yellow.bold(
- 'Jest did not exit one second after the test run has completed.\n\n'
- ) +
- _chalk().default.yellow(
- 'This usually means that there are asynchronous operations that ' +
- "weren't stopped in your tests. Consider running Jest with " +
- '`--detectOpenHandles` to troubleshoot this issue.'
- )
- );
- }, 1000).unref();
- }
- };
|