UNPKG

data-provider-temporary

Version:

Library that helps with server-to-client synchronization of data

478 lines (382 loc) 15.4 kB
'use strict'; const isCI = require('is-ci'); /** * Copyright (c) 2014, Facebook, Inc. All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */const 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?');} if (argv.onlyChanged && argv._.length > 0) { throw new Error( 'Both --onlyChanged and a path pattern were specified, but these ' + 'two options do not make sense together. Which is it? Do you want ' + 'to run tests for changed files? Or for a specific set of files?'); } if (argv.onlyChanged && argv.watchAll) { throw new Error( 'Both --onlyChanged 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.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.'); } return true; }; const usage = 'Usage: $0 [--config=<pathToConfigFile>] [TestPathPattern]'; const docs = 'Documentation: https://facebook.github.io/jest/'; const options = { automock: { default: undefined, description: 'Automock all files by default.', type: 'boolean' }, bail: { alias: 'b', default: undefined, description: 'Exit the test suite immediately upon the first failing test.', type: 'boolean' }, browser: { default: undefined, 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: { default: undefined, 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' }, ci: { default: isCI, 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' }, clearMocks: { default: undefined, description: 'Automatically clear mock calls and instances between every ' + 'test. Equivalent to calling jest.clearAllMocks() between each test.', type: 'boolean' }, collectCoverage: { default: undefined, description: 'Alias for --coverage.', type: 'boolean' }, collectCoverageFrom: { description: 'relative to <rootDir> glob pattern matching the files ' + 'that coverage info needs to be collected from.', type: 'string' }, collectCoverageOnlyFrom: { description: 'Explicit list of paths coverage will be restricted to.', type: 'array' }, color: { default: undefined, 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: { default: undefined, 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 current ' + 'directory 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: { default: undefined, 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.', type: 'array' }, coverageReporters: { description: 'A list of reporter names that Jest uses when writing ' + 'coverage reports. Any istanbul reporter can be used.', type: 'array' }, coverageThreshold: { description: 'A JSON string with which will be used to configure ' + 'minimum threshold enforcement for coverage results', type: 'string' }, debug: { default: undefined, description: 'Print debugging info about your jest config.', 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' }, expand: { alias: 'e', default: undefined, description: 'Use this flag to show full diffs instead of a patch.', type: 'boolean' }, findRelatedTests: { default: undefined, 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: { default: undefined, 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' }, 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' }, json: { default: undefined, description: 'Prints the test results in JSON. This mode will send all ' + 'other test output and user messages to stderr.', type: 'boolean' }, lastCommit: { default: undefined, description: 'Will run all tests affected by file changes in the last ' + 'commit made.', type: 'boolean' }, listTests: { default: false, 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: { default: undefined, description: 'Logs the heap usage after every test. Useful to debug ' + 'memory leaks. Use together with `--runInBand` and `--expose-gc` in ' + 'node.', type: 'boolean' }, mapCoverage: { default: undefined, description: 'Maps code coverage reports against original source code ' + 'when transformers supply source maps.', type: 'boolean' }, 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: 'number' }, moduleDirectories: { description: 'An array of directory names to be searched recursively ' + "up from the requiring module's location.", 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. ', type: 'array' }, moduleNameMapper: { description: 'A JSON string with a map from regular expressions to ' + '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.', 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.', type: 'array' }, noStackTrace: { default: undefined, description: 'Disables stack trace in test results output', type: 'boolean' }, notify: { default: undefined, description: 'Activates notifications for test results.', type: 'boolean' }, onlyChanged: { alias: 'o', default: undefined, 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 repository at the moment.', type: 'boolean' }, outputFile: { description: 'Write test results to a file when the --json option is ' + 'also specified.', type: 'string' }, preset: { description: "A preset that is used as a base for Jest's configuration.", type: 'string' }, projects: { description: 'A list of projects that use Jest to run all tests of all ' + 'projects in a single instance of Jest.', type: 'array' }, reporters: { description: 'A list of custom reporters for the test suite.', type: 'array' }, resetMocks: { default: undefined, description: 'Automatically reset mock state between every test. ' + 'Equivalent to calling jest.resetAllMocks() between each test.', type: 'boolean' }, resetModules: { default: undefined, 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' }, 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.', type: 'array' }, runInBand: { alias: 'i', default: undefined, 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' }, setupFiles: { description: 'The paths to modules that run some code to configure or ' + 'set up the testing environment before each test. ', type: 'array' }, setupTestFrameworkScriptFile: { description: 'The path to a module that runs some code to configure or ' + 'set up the testing framework before each test.', type: 'string' }, showConfig: { default: undefined, description: 'Print your jest config and then exits.', type: 'boolean' }, silent: { default: undefined, description: 'Prevent tests from printing messages through the console.', type: 'boolean' }, snapshotSerializers: { description: 'A list of paths to snapshot serializer modules Jest should ' + 'use for snapshot testing.', type: 'array' }, testEnvironment: { description: 'Alias for --env', type: 'string' }, testMatch: { description: 'The glob patterns Jest uses to detect test files.', 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.', type: 'array' }, testPathPattern: { description: 'A regexp pattern string that is matched against all tests ' + 'paths before executing the test.', type: 'string' }, testRegex: { description: 'The regexp pattern Jest uses to detect test files.', type: 'string' }, 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 ' + ' `jasmine2`. A path to a custom test runner can be provided: ' + '`<rootDir>/path/to/testRunner.js`.', type: 'string' }, 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.', 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.', type: 'array' }, updateSnapshot: { alias: 'u', default: undefined, 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: { default: undefined, description: 'Divert all output to stderr.', type: 'boolean' }, verbose: { default: undefined, description: 'Display individual test results with the test suite ' + 'hierarchy.', type: 'boolean' }, version: { alias: 'v', default: undefined, description: 'Print the version and exit', type: 'boolean' }, watch: { default: undefined, 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: { default: undefined, 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' }, watchman: { default: undefined, description: 'Whether to use watchman for file crawling. Disable using ' + '--no-watchman.', type: 'boolean' } }; module.exports = { check, docs, options, usage };