| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | 
							- 'use strict';
 
- Object.defineProperty(exports, '__esModule', {
 
-   value: true
 
- });
 
- exports.isSnapshotPath =
 
-   exports.buildSnapshotResolver =
 
-   exports.EXTENSION =
 
-   exports.DOT_EXTENSION =
 
-     void 0;
 
- var path = _interopRequireWildcard(require('path'));
 
- var _chalk = _interopRequireDefault(require('chalk'));
 
- var _transform = require('@jest/transform');
 
- var _jestUtil = require('jest-util');
 
- 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 EXTENSION = 'snap';
 
- exports.EXTENSION = EXTENSION;
 
- const DOT_EXTENSION = '.' + EXTENSION;
 
- exports.DOT_EXTENSION = DOT_EXTENSION;
 
- const isSnapshotPath = path => path.endsWith(DOT_EXTENSION);
 
- exports.isSnapshotPath = isSnapshotPath;
 
- const cache = new Map();
 
- const buildSnapshotResolver = async (
 
-   config,
 
-   localRequire = (0, _transform.createTranspilingRequire)(config)
 
- ) => {
 
-   var _cache$get;
 
-   const key = config.rootDir;
 
-   const resolver =
 
-     (_cache$get = cache.get(key)) !== null && _cache$get !== void 0
 
-       ? _cache$get
 
-       : await createSnapshotResolver(
 
-           await localRequire,
 
-           config.snapshotResolver
 
-         );
 
-   cache.set(key, resolver);
 
-   return resolver;
 
- };
 
- exports.buildSnapshotResolver = buildSnapshotResolver;
 
- async function createSnapshotResolver(localRequire, snapshotResolverPath) {
 
-   return typeof snapshotResolverPath === 'string'
 
-     ? await createCustomSnapshotResolver(snapshotResolverPath, localRequire)
 
-     : createDefaultSnapshotResolver();
 
- }
 
- function createDefaultSnapshotResolver() {
 
-   return {
 
-     resolveSnapshotPath: testPath =>
 
-       path.join(
 
-         path.join(path.dirname(testPath), '__snapshots__'),
 
-         path.basename(testPath) + DOT_EXTENSION
 
-       ),
 
-     resolveTestPath: snapshotPath =>
 
-       path.resolve(
 
-         path.dirname(snapshotPath),
 
-         '..',
 
-         path.basename(snapshotPath, DOT_EXTENSION)
 
-       ),
 
-     testPathForConsistencyCheck: path.posix.join(
 
-       'consistency_check',
 
-       '__tests__',
 
-       'example.test.js'
 
-     )
 
-   };
 
- }
 
- async function createCustomSnapshotResolver(
 
-   snapshotResolverPath,
 
-   localRequire
 
- ) {
 
-   const custom = (0, _jestUtil.interopRequireDefault)(
 
-     await localRequire(snapshotResolverPath)
 
-   ).default;
 
-   const keys = [
 
-     ['resolveSnapshotPath', 'function'],
 
-     ['resolveTestPath', 'function'],
 
-     ['testPathForConsistencyCheck', 'string']
 
-   ];
 
-   keys.forEach(([propName, requiredType]) => {
 
-     if (typeof custom[propName] !== requiredType) {
 
-       throw new TypeError(mustImplement(propName, requiredType));
 
-     }
 
-   });
 
-   const customResolver = {
 
-     resolveSnapshotPath: testPath =>
 
-       custom.resolveSnapshotPath(testPath, DOT_EXTENSION),
 
-     resolveTestPath: snapshotPath =>
 
-       custom.resolveTestPath(snapshotPath, DOT_EXTENSION),
 
-     testPathForConsistencyCheck: custom.testPathForConsistencyCheck
 
-   };
 
-   verifyConsistentTransformations(customResolver);
 
-   return customResolver;
 
- }
 
- function mustImplement(propName, requiredType) {
 
-   return (
 
-     _chalk.default.bold(
 
-       `Custom snapshot resolver must implement a \`${propName}\` as a ${requiredType}.`
 
-     ) +
 
-     '\nDocumentation: https://jestjs.io/docs/configuration#snapshotresolver-string'
 
-   );
 
- }
 
- function verifyConsistentTransformations(custom) {
 
-   const resolvedSnapshotPath = custom.resolveSnapshotPath(
 
-     custom.testPathForConsistencyCheck
 
-   );
 
-   const resolvedTestPath = custom.resolveTestPath(resolvedSnapshotPath);
 
-   if (resolvedTestPath !== custom.testPathForConsistencyCheck) {
 
-     throw new Error(
 
-       _chalk.default.bold(
 
-         `Custom snapshot resolver functions must transform paths consistently, i.e. expects resolveTestPath(resolveSnapshotPath('${custom.testPathForConsistencyCheck}')) === ${resolvedTestPath}`
 
-       )
 
-     );
 
-   }
 
- }
 
 
  |