mirror of https://github.com/facebook/jest.git
154 lines
3.7 KiB
JavaScript
154 lines
3.7 KiB
JavaScript
/**
|
|
* Copyright (c) 2014-present, Facebook, Inc. 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.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import type {GlobalConfig, ProjectConfig} from 'types/Config';
|
|
|
|
const DEFAULT_GLOBAL_CONFIG: GlobalConfig = {
|
|
bail: false,
|
|
changedFilesWithAncestor: false,
|
|
changedSince: '',
|
|
collectCoverage: false,
|
|
collectCoverageFrom: [],
|
|
collectCoverageOnlyFrom: null,
|
|
coverageDirectory: 'coverage',
|
|
coverageReporters: [],
|
|
coverageThreshold: {global: {}},
|
|
detectLeaks: false,
|
|
detectOpenHandles: false,
|
|
enabledTestsMap: null,
|
|
errorOnDeprecated: false,
|
|
expand: false,
|
|
filter: null,
|
|
findRelatedTests: false,
|
|
forceExit: false,
|
|
globalSetup: null,
|
|
globalTeardown: null,
|
|
json: false,
|
|
lastCommit: false,
|
|
listTests: false,
|
|
logHeapUsage: false,
|
|
maxWorkers: 2,
|
|
noSCM: null,
|
|
noStackTrace: false,
|
|
nonFlagArgs: [],
|
|
notify: false,
|
|
notifyMode: 'failure-change',
|
|
onlyChanged: false,
|
|
onlyFailures: false,
|
|
outputFile: null,
|
|
passWithNoTests: false,
|
|
projects: [],
|
|
replname: null,
|
|
reporters: [],
|
|
rootDir: '/test_root_dir/',
|
|
runTestsByPath: false,
|
|
silent: false,
|
|
skipFilter: false,
|
|
testFailureExitCode: 1,
|
|
testNamePattern: '',
|
|
testPathPattern: '',
|
|
testResultsProcessor: null,
|
|
updateSnapshot: 'none',
|
|
useStderr: false,
|
|
verbose: false,
|
|
watch: false,
|
|
watchAll: false,
|
|
watchPlugins: [],
|
|
watchman: false,
|
|
};
|
|
|
|
const DEFAULT_PROJECT_CONFIG: ProjectConfig = {
|
|
automock: false,
|
|
browser: false,
|
|
cache: false,
|
|
cacheDirectory: '/test_cache_dir/',
|
|
clearMocks: false,
|
|
coveragePathIgnorePatterns: [],
|
|
cwd: '/test_root_dir/',
|
|
detectLeaks: false,
|
|
detectOpenHandles: false,
|
|
displayName: undefined,
|
|
errorOnDeprecated: false,
|
|
filter: null,
|
|
forceCoverageMatch: [],
|
|
globals: {},
|
|
haste: {
|
|
providesModuleNodeModules: [],
|
|
},
|
|
moduleDirectories: [],
|
|
moduleFileExtensions: ['js'],
|
|
moduleLoader: '/test_module_loader_path',
|
|
moduleNameMapper: [],
|
|
modulePathIgnorePatterns: [],
|
|
modulePaths: [],
|
|
name: 'test_name',
|
|
prettierPath: 'prettier',
|
|
resetMocks: false,
|
|
resetModules: false,
|
|
resolver: null,
|
|
restoreMocks: false,
|
|
rootDir: '/test_root_dir/',
|
|
roots: [],
|
|
runner: 'jest-runner',
|
|
setupFiles: [],
|
|
setupTestFrameworkScriptFile: null,
|
|
skipFilter: false,
|
|
skipNodeResolution: false,
|
|
snapshotResolver: null,
|
|
snapshotSerializers: [],
|
|
testEnvironment: 'node',
|
|
testEnvironmentOptions: {},
|
|
testLocationInResults: false,
|
|
testMatch: [],
|
|
testPathIgnorePatterns: [],
|
|
testRegex: '.test.js$',
|
|
testRunner: 'jest-jasmine2',
|
|
testURL: '',
|
|
timers: 'real',
|
|
transform: [],
|
|
transformIgnorePatterns: [],
|
|
unmockedModulePathPatterns: null,
|
|
watchPathIgnorePatterns: [],
|
|
};
|
|
|
|
const makeGlobalConfig = (overrides: Object = {}): GlobalConfig => {
|
|
const overridesKeys = new Set(Object.keys(overrides));
|
|
Object.keys(DEFAULT_GLOBAL_CONFIG).forEach(key => overridesKeys.delete(key));
|
|
|
|
if (overridesKeys.size > 0) {
|
|
throw new Error(`
|
|
Properties that are not part of GlobalConfig type were passed:
|
|
${JSON.stringify(Array.from(overridesKeys))}
|
|
`);
|
|
}
|
|
|
|
return Object.assign({}, DEFAULT_GLOBAL_CONFIG, overrides);
|
|
};
|
|
|
|
const makeProjectConfig = (overrides: Object = {}): ProjectConfig => {
|
|
const overridesKeys = new Set(Object.keys(overrides));
|
|
Object.keys(DEFAULT_PROJECT_CONFIG).forEach(key => overridesKeys.delete(key));
|
|
|
|
if (overridesKeys.size > 0) {
|
|
throw new Error(`
|
|
Properties that are not part of ProjectConfig type were passed:
|
|
${JSON.stringify(Array.from(overridesKeys))}
|
|
`);
|
|
}
|
|
|
|
return Object.assign({}, DEFAULT_PROJECT_CONFIG, overrides);
|
|
};
|
|
|
|
module.exports = {
|
|
makeGlobalConfig,
|
|
makeProjectConfig,
|
|
};
|