123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717 |
- 'use strict';
-
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.check = check;
- exports.options = exports.docs = exports.usage = void 0;
-
- function _jestConfig() {
- const data = require('jest-config');
-
- _jestConfig = function () {
- return data;
- };
-
- return data;
- }
-
- /**
- * 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.
- */
- function check(argv) {
- if (argv.runInBand && argv.hasOwnProperty('maxWorkers')) {
- throw new Error(
- 'Both --runInBand and --maxWorkers were specified, but these two ' +
- 'options do not make sense together. Which is it?'
- );
- }
-
- for (const key of [
- 'onlyChanged',
- 'lastCommit',
- 'changedFilesWithAncestor',
- 'changedSince'
- ]) {
- if (argv[key] && argv.watchAll) {
- throw new Error(
- `Both --${key} and --watchAll were specified, but these two ` +
- 'options do not make sense together. Try the --watch option which ' +
- 'reruns only tests related to changed files.'
- );
- }
- }
-
- if (argv.onlyFailures && argv.watchAll) {
- throw new Error(
- `Both --onlyFailures and --watchAll were specified, but these two ` +
- 'options do not make sense together.'
- );
- }
-
- if (argv.findRelatedTests && argv._.length === 0) {
- throw new Error(
- 'The --findRelatedTests option requires file paths to be specified.\n' +
- 'Example usage: jest --findRelatedTests ./src/source.js ' +
- './src/index.js.'
- );
- }
-
- if (argv.hasOwnProperty('maxWorkers') && argv.maxWorkers === undefined) {
- throw new Error(
- 'The --maxWorkers (-w) option requires a number or string to be specified.\n' +
- 'Example usage: jest --maxWorkers 2\n' +
- 'Example usage: jest --maxWorkers 50%\n' +
- 'Or did you mean --watch?'
- );
- }
-
- if (argv.selectProjects && argv.selectProjects.length === 0) {
- throw new Error(
- 'The --selectProjects option requires the name of at least one project to be specified.\n' +
- 'Example usage: jest --selectProjects my-first-project my-second-project'
- );
- }
-
- if (
- argv.config &&
- !(0, _jestConfig().isJSONString)(argv.config) &&
- !argv.config.match(
- new RegExp(
- `\\.(${_jestConfig()
- .constants.JEST_CONFIG_EXT_ORDER.map(e => e.substring(1))
- .join('|')})$`,
- 'i'
- )
- )
- ) {
- throw new Error(
- `The --config option requires a JSON string literal, or a file path with one of these extensions: ${_jestConfig().constants.JEST_CONFIG_EXT_ORDER.join(
- ', '
- )}.\nExample usage: jest --config ./jest.config.js`
- );
- }
-
- return true;
- }
-
- const usage = 'Usage: $0 [--config=<pathToConfigFile>] [TestPathPattern]';
- exports.usage = usage;
- const docs = 'Documentation: https://jestjs.io/'; // The default values are all set in jest-config
-
- exports.docs = docs;
- const options = {
- all: {
- description:
- 'The opposite of `onlyChanged`. If `onlyChanged` is set by ' +
- 'default, running jest with `--all` will force Jest to run all tests ' +
- 'instead of running only tests related to changed files.',
- type: 'boolean'
- },
- automock: {
- description: 'Automock all files by default.',
- type: 'boolean'
- },
- bail: {
- alias: 'b',
- description:
- 'Exit the test suite immediately after `n` number of failing tests.',
- type: 'boolean'
- },
- browser: {
- description:
- 'Respect the "browser" field in package.json ' +
- 'when resolving modules. Some packages export different versions ' +
- 'based on whether they are operating in node.js or a browser.',
- type: 'boolean'
- },
- cache: {
- description:
- 'Whether to use the transform cache. Disable the cache ' +
- 'using --no-cache.',
- type: 'boolean'
- },
- cacheDirectory: {
- description:
- 'The directory where Jest should store its cached ' +
- ' dependency information.',
- type: 'string'
- },
- changedFilesWithAncestor: {
- description:
- 'Runs tests related to the current changes and the changes made in the ' +
- 'last commit. Behaves similarly to `--onlyChanged`.',
- type: 'boolean'
- },
- changedSince: {
- description:
- 'Runs tests related to the changes since the provided branch. If the ' +
- 'current branch has diverged from the given branch, then only changes ' +
- 'made locally will be tested. Behaves similarly to `--onlyChanged`.',
- nargs: 1,
- type: 'string'
- },
- ci: {
- description:
- 'Whether to run Jest in continuous integration (CI) mode. ' +
- 'This option is on by default in most popular CI environments. It will ' +
- 'prevent snapshots from being written unless explicitly requested.',
- type: 'boolean'
- },
- clearCache: {
- description:
- 'Clears the configured Jest cache directory and then exits. ' +
- 'Default directory can be found by calling jest --showConfig',
- type: 'boolean'
- },
- clearMocks: {
- description:
- 'Automatically clear mock calls and instances between every ' +
- 'test. Equivalent to calling jest.clearAllMocks() between each test.',
- type: 'boolean'
- },
- collectCoverage: {
- description: 'Alias for --coverage.',
- type: 'boolean'
- },
- collectCoverageFrom: {
- description:
- 'A glob pattern relative to <rootDir> matching the files that coverage ' +
- 'info needs to be collected from.',
- type: 'string'
- },
- collectCoverageOnlyFrom: {
- description: 'Explicit list of paths coverage will be restricted to.',
- string: true,
- type: 'array'
- },
- color: {
- description:
- 'Forces test results output color highlighting (even if ' +
- 'stdout is not a TTY). Set to false if you would like to have no colors.',
- type: 'boolean'
- },
- colors: {
- description: 'Alias for `--color`.',
- type: 'boolean'
- },
- config: {
- alias: 'c',
- description:
- 'The path to a jest config file specifying how to find ' +
- 'and execute tests. If no rootDir is set in the config, the directory ' +
- 'containing the config file is assumed to be the rootDir for the project.' +
- 'This can also be a JSON encoded value which Jest will use as configuration.',
- type: 'string'
- },
- coverage: {
- description:
- 'Indicates that test coverage information should be ' +
- 'collected and reported in the output.',
- type: 'boolean'
- },
- coverageDirectory: {
- description: 'The directory where Jest should output its coverage files.',
- type: 'string'
- },
- coveragePathIgnorePatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all file paths before executing the test. If the file path' +
- 'matches any of the patterns, coverage information will be skipped.',
- string: true,
- type: 'array'
- },
- coverageProvider: {
- choices: ['babel', 'v8'],
- description: 'Select between Babel and V8 to collect coverage'
- },
- coverageReporters: {
- description:
- 'A list of reporter names that Jest uses when writing ' +
- 'coverage reports. Any istanbul reporter can be used.',
- string: true,
- type: 'array'
- },
- coverageThreshold: {
- description:
- 'A JSON string with which will be used to configure ' +
- 'minimum threshold enforcement for coverage results',
- type: 'string'
- },
- debug: {
- description: 'Print debugging info about your jest config.',
- type: 'boolean'
- },
- detectLeaks: {
- description:
- '**EXPERIMENTAL**: Detect memory leaks in tests. After executing a ' +
- 'test, it will try to garbage collect the global object used, and fail ' +
- 'if it was leaked',
- type: 'boolean'
- },
- detectOpenHandles: {
- description:
- 'Print out remaining open handles preventing Jest from exiting at the ' +
- 'end of a test run. Implies `runInBand`.',
- type: 'boolean'
- },
- env: {
- description:
- 'The test environment used for all tests. This can point to ' +
- 'any file or node module. Examples: `jsdom`, `node` or ' +
- '`path/to/my-environment.js`',
- type: 'string'
- },
- errorOnDeprecated: {
- description: 'Make calling deprecated APIs throw helpful error messages.',
- type: 'boolean'
- },
- expand: {
- alias: 'e',
- description: 'Use this flag to show full diffs instead of a patch.',
- type: 'boolean'
- },
- filter: {
- description:
- 'Path to a module exporting a filtering function. This method receives ' +
- 'a list of tests which can be manipulated to exclude tests from ' +
- 'running. Especially useful when used in conjunction with a testing ' +
- 'infrastructure to filter known broken tests.',
- type: 'string'
- },
- findRelatedTests: {
- description:
- 'Find related tests for a list of source files that were ' +
- 'passed in as arguments. Useful for pre-commit hook integration to run ' +
- 'the minimal amount of tests necessary.',
- type: 'boolean'
- },
- forceExit: {
- description:
- 'Force Jest to exit after all tests have completed running. ' +
- 'This is useful when resources set up by test code cannot be ' +
- 'adequately cleaned up.',
- type: 'boolean'
- },
- globalSetup: {
- description: 'The path to a module that runs before All Tests.',
- type: 'string'
- },
- globalTeardown: {
- description: 'The path to a module that runs after All Tests.',
- type: 'string'
- },
- globals: {
- description:
- 'A JSON string with map of global variables that need ' +
- 'to be available in all test environments.',
- type: 'string'
- },
- haste: {
- description:
- 'A JSON string with map of variables for the haste module system',
- type: 'string'
- },
- init: {
- description: 'Generate a basic configuration file',
- type: 'boolean'
- },
- injectGlobals: {
- description: 'Should Jest inject global variables or not',
- type: 'boolean'
- },
- json: {
- description:
- 'Prints the test results in JSON. This mode will send all ' +
- 'other test output and user messages to stderr.',
- type: 'boolean'
- },
- lastCommit: {
- description:
- 'Run all tests affected by file changes in the last commit made. ' +
- 'Behaves similarly to `--onlyChanged`.',
- type: 'boolean'
- },
- listTests: {
- description:
- 'Lists all tests Jest will run given the arguments and ' +
- 'exits. Most useful in a CI system together with `--findRelatedTests` ' +
- 'to determine the tests Jest will run based on specific files',
- type: 'boolean'
- },
- logHeapUsage: {
- description:
- 'Logs the heap usage after every test. Useful to debug ' +
- 'memory leaks. Use together with `--runInBand` and `--expose-gc` in ' +
- 'node.',
- type: 'boolean'
- },
- maxConcurrency: {
- description:
- 'Specifies the maximum number of tests that are allowed to run' +
- 'concurrently. This only affects tests using `test.concurrent`.',
- type: 'number'
- },
- maxWorkers: {
- alias: 'w',
- description:
- 'Specifies the maximum number of workers the worker-pool ' +
- 'will spawn for running tests. This defaults to the number of the ' +
- 'cores available on your machine. (its usually best not to override ' +
- 'this default)',
- type: 'string'
- },
- moduleDirectories: {
- description:
- 'An array of directory names to be searched recursively ' +
- "up from the requiring module's location.",
- string: true,
- type: 'array'
- },
- moduleFileExtensions: {
- description:
- 'An array of file extensions your modules use. If you ' +
- 'require modules without specifying a file extension, these are the ' +
- 'extensions Jest will look for. ',
- string: true,
- type: 'array'
- },
- moduleNameMapper: {
- description:
- 'A JSON string with a map from regular expressions to ' +
- 'module names or to arrays of module names that allow to stub ' +
- 'out resources, like images or styles with a single module',
- type: 'string'
- },
- modulePathIgnorePatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all module paths before those paths are to be considered ' +
- '"visible" to the module loader.',
- string: true,
- type: 'array'
- },
- modulePaths: {
- description:
- 'An alternative API to setting the NODE_PATH env variable, ' +
- 'modulePaths is an array of absolute paths to additional locations to ' +
- 'search when resolving modules.',
- string: true,
- type: 'array'
- },
- noStackTrace: {
- description: 'Disables stack trace in test results output',
- type: 'boolean'
- },
- notify: {
- description: 'Activates notifications for test results.',
- type: 'boolean'
- },
- notifyMode: {
- description: 'Specifies when notifications will appear for test results.',
- type: 'string'
- },
- onlyChanged: {
- alias: 'o',
- description:
- 'Attempts to identify which tests to run based on which ' +
- "files have changed in the current repository. Only works if you're " +
- 'running tests in a git or hg repository at the moment.',
- type: 'boolean'
- },
- onlyFailures: {
- alias: 'f',
- description: 'Run tests that failed in the previous execution.',
- type: 'boolean'
- },
- outputFile: {
- description:
- 'Write test results to a file when the --json option is ' +
- 'also specified.',
- type: 'string'
- },
- passWithNoTests: {
- description:
- 'Will not fail if no tests are found (for example while using `--testPathPattern`.)',
- type: 'boolean'
- },
- preset: {
- description: "A preset that is used as a base for Jest's configuration.",
- type: 'string'
- },
- prettierPath: {
- description: 'The path to the "prettier" module used for inline snapshots.',
- type: 'string'
- },
- projects: {
- description:
- 'A list of projects that use Jest to run all tests of all ' +
- 'projects in a single instance of Jest.',
- string: true,
- type: 'array'
- },
- reporters: {
- description: 'A list of custom reporters for the test suite.',
- string: true,
- type: 'array'
- },
- resetMocks: {
- description:
- 'Automatically reset mock state between every test. ' +
- 'Equivalent to calling jest.resetAllMocks() between each test.',
- type: 'boolean'
- },
- resetModules: {
- description:
- 'If enabled, the module registry for every test file will ' +
- 'be reset before running each individual test.',
- type: 'boolean'
- },
- resolver: {
- description: 'A JSON string which allows the use of a custom resolver.',
- type: 'string'
- },
- restoreMocks: {
- description:
- 'Automatically restore mock state and implementation between every test. ' +
- 'Equivalent to calling jest.restoreAllMocks() between each test.',
- type: 'boolean'
- },
- rootDir: {
- description:
- 'The root directory that Jest should scan for tests and ' +
- 'modules within.',
- type: 'string'
- },
- roots: {
- description:
- 'A list of paths to directories that Jest should use to ' +
- 'search for files in.',
- string: true,
- type: 'array'
- },
- runInBand: {
- alias: 'i',
- description:
- 'Run all tests serially in the current process (rather than ' +
- 'creating a worker pool of child processes that run tests). This ' +
- 'is sometimes useful for debugging, but such use cases are pretty ' +
- 'rare.',
- type: 'boolean'
- },
- runTestsByPath: {
- description:
- 'Used when provided patterns are exact file paths. This avoids ' +
- 'converting them into a regular expression and matching it against ' +
- 'every single file.',
- type: 'boolean'
- },
- runner: {
- description:
- "Allows to use a custom runner instead of Jest's default test runner.",
- type: 'string'
- },
- selectProjects: {
- description:
- 'Run only the tests of the specified projects.' +
- 'Jest uses the attribute `displayName` in the configuration to identify each project.',
- string: true,
- type: 'array'
- },
- setupFiles: {
- description:
- 'A list of paths to modules that run some code to configure or ' +
- 'set up the testing environment before each test. ',
- string: true,
- type: 'array'
- },
- setupFilesAfterEnv: {
- description:
- 'A list of paths to modules that run some code to configure or ' +
- 'set up the testing framework before each test ',
- string: true,
- type: 'array'
- },
- showConfig: {
- description: 'Print your jest config and then exits.',
- type: 'boolean'
- },
- silent: {
- description: 'Prevent tests from printing messages through the console.',
- type: 'boolean'
- },
- skipFilter: {
- description:
- 'Disables the filter provided by --filter. Useful for CI jobs, or ' +
- 'local enforcement when fixing tests.',
- type: 'boolean'
- },
- snapshotSerializers: {
- description:
- 'A list of paths to snapshot serializer modules Jest should ' +
- 'use for snapshot testing.',
- string: true,
- type: 'array'
- },
- testEnvironment: {
- description: 'Alias for --env',
- type: 'string'
- },
- testEnvironmentOptions: {
- description:
- 'Test environment options that will be passed to the testEnvironment. ' +
- 'The relevant options depend on the environment.',
- type: 'string' // Object
- },
- testFailureExitCode: {
- description: 'Exit code of `jest` command if the test run failed',
- type: 'string' // number
- },
- testLocationInResults: {
- description: 'Add `location` information to the test results',
- type: 'boolean'
- },
- testMatch: {
- description: 'The glob patterns Jest uses to detect test files.',
- string: true,
- type: 'array'
- },
- testNamePattern: {
- alias: 't',
- description: 'Run only tests with a name that matches the regex pattern.',
- type: 'string'
- },
- testPathIgnorePatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all test paths before executing the test. If the test path ' +
- 'matches any of the patterns, it will be skipped.',
- string: true,
- type: 'array'
- },
- testPathPattern: {
- description:
- 'A regexp pattern string that is matched against all tests ' +
- 'paths before executing the test.',
- string: true,
- type: 'array'
- },
- testRegex: {
- description:
- 'A string or array of string regexp patterns that Jest uses to detect test files.',
- string: true,
- type: 'array'
- },
- testResultsProcessor: {
- description:
- 'Allows the use of a custom results processor. ' +
- 'This processor must be a node module that exports ' +
- 'a function expecting as the first argument the result object.',
- type: 'string'
- },
- testRunner: {
- description:
- 'Allows to specify a custom test runner. The default is' +
- ' `jest-circus/runner`. A path to a custom test runner can be provided:' +
- ' `<rootDir>/path/to/testRunner.js`.',
- type: 'string'
- },
- testSequencer: {
- description:
- 'Allows to specify a custom test sequencer. The default is ' +
- '`@jest/test-sequencer`. A path to a custom test sequencer can be ' +
- 'provided: `<rootDir>/path/to/testSequencer.js`',
- type: 'string'
- },
- testTimeout: {
- description: 'This option sets the default timeouts of test cases.',
- type: 'number'
- },
- testURL: {
- description: 'This option sets the URL for the jsdom environment.',
- type: 'string'
- },
- timers: {
- description:
- 'Setting this value to fake allows the use of fake timers ' +
- 'for functions such as setTimeout.',
- type: 'string'
- },
- transform: {
- description:
- 'A JSON string which maps from regular expressions to paths ' +
- 'to transformers.',
- type: 'string'
- },
- transformIgnorePatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all source file paths before transformation.',
- string: true,
- type: 'array'
- },
- unmockedModulePathPatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all modules before the module loader will automatically ' +
- 'return a mock for them.',
- string: true,
- type: 'array'
- },
- updateSnapshot: {
- alias: 'u',
- description:
- 'Use this flag to re-record snapshots. ' +
- 'Can be used together with a test suite pattern or with ' +
- '`--testNamePattern` to re-record snapshot for test matching ' +
- 'the pattern',
- type: 'boolean'
- },
- useStderr: {
- description: 'Divert all output to stderr.',
- type: 'boolean'
- },
- verbose: {
- description:
- 'Display individual test results with the test suite hierarchy.',
- type: 'boolean'
- },
- version: {
- alias: 'v',
- description: 'Print the version and exit',
- type: 'boolean'
- },
- watch: {
- description:
- 'Watch files for changes and rerun tests related to ' +
- 'changed files. If you want to re-run all tests when a file has ' +
- 'changed, use the `--watchAll` option.',
- type: 'boolean'
- },
- watchAll: {
- description:
- 'Watch files for changes and rerun all tests. If you want ' +
- 'to re-run only the tests related to the changed files, use the ' +
- '`--watch` option.',
- type: 'boolean'
- },
- watchPathIgnorePatterns: {
- description:
- 'An array of regexp pattern strings that are matched ' +
- 'against all paths before trigger test re-run in watch mode. ' +
- 'If the test path matches any of the patterns, it will be skipped.',
- string: true,
- type: 'array'
- },
- watchman: {
- description:
- 'Whether to use watchman for file crawling. Disable using ' +
- '--no-watchman.',
- type: 'boolean'
- }
- };
- exports.options = options;
|