118 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = void 0; | ||
|  | 
 | ||
|  | var _expect = require('expect'); | ||
|  | 
 | ||
|  | var _jestSnapshot = require('jest-snapshot'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * 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. | ||
|  |  */ | ||
|  | // Get suppressed errors form  jest-matchers that weren't throw during
 | ||
|  | // test execution and add them to the test result, potentially failing
 | ||
|  | // a passing test.
 | ||
|  | const addSuppressedErrors = result => { | ||
|  |   const _getState = (0, _expect.getState)(), | ||
|  |     suppressedErrors = _getState.suppressedErrors; | ||
|  | 
 | ||
|  |   (0, _expect.setState)({ | ||
|  |     suppressedErrors: [] | ||
|  |   }); | ||
|  | 
 | ||
|  |   if (suppressedErrors.length) { | ||
|  |     result.status = 'failed'; | ||
|  |     result.failedExpectations = suppressedErrors.map(error => ({ | ||
|  |       actual: '', | ||
|  |       // passing error for custom test reporters
 | ||
|  |       error, | ||
|  |       expected: '', | ||
|  |       matcherName: '', | ||
|  |       message: error.message, | ||
|  |       passed: false, | ||
|  |       stack: error.stack | ||
|  |     })); | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | const addAssertionErrors = result => { | ||
|  |   const assertionErrors = (0, _expect.extractExpectedAssertionsErrors)(); | ||
|  | 
 | ||
|  |   if (assertionErrors.length) { | ||
|  |     const jasmineErrors = assertionErrors.map(({actual, error, expected}) => ({ | ||
|  |       actual, | ||
|  |       expected, | ||
|  |       message: error.stack, | ||
|  |       passed: false | ||
|  |     })); | ||
|  |     result.status = 'failed'; | ||
|  |     result.failedExpectations = result.failedExpectations.concat(jasmineErrors); | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | const patchJasmine = () => { | ||
|  |   global.jasmine.Spec = (realSpec => { | ||
|  |     class Spec extends realSpec { | ||
|  |       constructor(attr) { | ||
|  |         const resultCallback = attr.resultCallback; | ||
|  | 
 | ||
|  |         attr.resultCallback = function(result) { | ||
|  |           addSuppressedErrors(result); | ||
|  |           addAssertionErrors(result); | ||
|  |           resultCallback.call(attr, result); | ||
|  |         }; | ||
|  | 
 | ||
|  |         const onStart = attr.onStart; | ||
|  | 
 | ||
|  |         attr.onStart = context => { | ||
|  |           (0, _expect.setState)({ | ||
|  |             currentTestName: context.getFullName() | ||
|  |           }); | ||
|  |           onStart && onStart.call(attr, context); | ||
|  |         }; | ||
|  | 
 | ||
|  |         super(attr); | ||
|  |       } | ||
|  |     } | ||
|  | 
 | ||
|  |     return Spec; | ||
|  |   })(global.jasmine.Spec); | ||
|  | }; | ||
|  | 
 | ||
|  | var _default = ({config, globalConfig, localRequire, testPath}) => { | ||
|  |   // Jest tests snapshotSerializers in order preceding built-in serializers.
 | ||
|  |   // Therefore, add in reverse because the last added is the first tested.
 | ||
|  |   config.snapshotSerializers | ||
|  |     .concat() | ||
|  |     .reverse() | ||
|  |     .forEach(path => { | ||
|  |       (0, _jestSnapshot.addSerializer)(localRequire(path)); | ||
|  |     }); | ||
|  |   patchJasmine(); | ||
|  |   const expand = globalConfig.expand, | ||
|  |     updateSnapshot = globalConfig.updateSnapshot; | ||
|  |   const snapshotResolver = (0, _jestSnapshot.buildSnapshotResolver)(config); | ||
|  |   const snapshotPath = snapshotResolver.resolveSnapshotPath(testPath); | ||
|  |   const snapshotState = new _jestSnapshot.SnapshotState(snapshotPath, { | ||
|  |     expand, | ||
|  |     getBabelTraverse: () => require('@babel/traverse').default, | ||
|  |     getPrettier: () => | ||
|  |       config.prettierPath ? require(config.prettierPath) : null, | ||
|  |     updateSnapshot | ||
|  |   }); | ||
|  |   (0, _expect.setState)({ | ||
|  |     snapshotState, | ||
|  |     testPath | ||
|  |   }); // Return it back to the outer scope (test runner outside the VM).
 | ||
|  | 
 | ||
|  |   return snapshotState; | ||
|  | }; | ||
|  | 
 | ||
|  | exports.default = _default; |