Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, '__esModule', { | |
| value: true | |
| }); | |
| exports.default = shouldInstrument; | |
| function path() { | |
| const data = _interopRequireWildcard(require('path')); | |
| path = function () { | |
| return data; | |
| }; | |
| return data; | |
| } | |
| function _micromatch() { | |
| const data = _interopRequireDefault(require('micromatch')); | |
| _micromatch = function () { | |
| return data; | |
| }; | |
| return data; | |
| } | |
| function _jestRegexUtil() { | |
| const data = require('jest-regex-util'); | |
| _jestRegexUtil = function () { | |
| return data; | |
| }; | |
| return data; | |
| } | |
| function _jestUtil() { | |
| const data = require('jest-util'); | |
| _jestUtil = function () { | |
| return data; | |
| }; | |
| return data; | |
| } | |
| 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. | |
| */ | |
| const MOCKS_PATTERN = new RegExp( | |
| (0, _jestRegexUtil().escapePathForRegex)( | |
| path().sep + '__mocks__' + path().sep | |
| ) | |
| ); | |
| const cachedRegexes = new Map(); | |
| const getRegex = regexStr => { | |
| if (!cachedRegexes.has(regexStr)) { | |
| cachedRegexes.set(regexStr, new RegExp(regexStr)); | |
| } | |
| const regex = cachedRegexes.get(regexStr); // prevent stateful regexes from breaking, just in case | |
| regex.lastIndex = 0; | |
| return regex; | |
| }; | |
| function shouldInstrument(filename, options, config) { | |
| if (!options.collectCoverage) { | |
| return false; | |
| } | |
| if ( | |
| config.forceCoverageMatch.length && | |
| _micromatch().default.any(filename, config.forceCoverageMatch) | |
| ) { | |
| return true; | |
| } | |
| if ( | |
| !config.testPathIgnorePatterns.some(pattern => | |
| getRegex(pattern).test(filename) | |
| ) | |
| ) { | |
| if (config.testRegex.some(regex => new RegExp(regex).test(filename))) { | |
| return false; | |
| } | |
| if ( | |
| (0, _jestUtil().globsToMatcher)(config.testMatch)( | |
| (0, _jestUtil().replacePathSepForGlob)(filename) | |
| ) | |
| ) { | |
| return false; | |
| } | |
| } | |
| if ( | |
| // This configuration field contains an object in the form of: | |
| // {'path/to/file.js': true} | |
| options.collectCoverageOnlyFrom && | |
| !options.collectCoverageOnlyFrom[filename] | |
| ) { | |
| return false; | |
| } | |
| if ( | |
| // still cover if `only` is specified | |
| !options.collectCoverageOnlyFrom && | |
| options.collectCoverageFrom.length && | |
| !(0, _jestUtil().globsToMatcher)(options.collectCoverageFrom)( | |
| (0, _jestUtil().replacePathSepForGlob)( | |
| path().relative(config.rootDir, filename) | |
| ) | |
| ) | |
| ) { | |
| return false; | |
| } | |
| if ( | |
| config.coveragePathIgnorePatterns.some(pattern => !!filename.match(pattern)) | |
| ) { | |
| return false; | |
| } | |
| if (config.globalSetup === filename) { | |
| return false; | |
| } | |
| if (config.globalTeardown === filename) { | |
| return false; | |
| } | |
| if (config.setupFiles.includes(filename)) { | |
| return false; | |
| } | |
| if (config.setupFilesAfterEnv.includes(filename)) { | |
| return false; | |
| } | |
| if (MOCKS_PATTERN.test(filename)) { | |
| return false; | |
| } | |
| if (options.changedFiles && !options.changedFiles.has(filename)) { | |
| if (!options.sourcesRelatedToTestsInChangedFiles) { | |
| return false; | |
| } | |
| if (!options.sourcesRelatedToTestsInChangedFiles.has(filename)) { | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |