153 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true
 | |
| });
 | |
| exports.addResult = exports.buildFailureTestResult = exports.makeEmptyAggregatedTestResult = void 0;
 | |
| 
 | |
| /**
 | |
|  * 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 makeEmptyAggregatedTestResult = () => ({
 | |
|   numFailedTestSuites: 0,
 | |
|   numFailedTests: 0,
 | |
|   numPassedTestSuites: 0,
 | |
|   numPassedTests: 0,
 | |
|   numPendingTestSuites: 0,
 | |
|   numPendingTests: 0,
 | |
|   numRuntimeErrorTestSuites: 0,
 | |
|   numTodoTests: 0,
 | |
|   numTotalTestSuites: 0,
 | |
|   numTotalTests: 0,
 | |
|   openHandles: [],
 | |
|   snapshot: {
 | |
|     added: 0,
 | |
|     didUpdate: false,
 | |
|     // is set only after the full run
 | |
|     failure: false,
 | |
|     filesAdded: 0,
 | |
|     // combines individual test results + removed files after the full run
 | |
|     filesRemoved: 0,
 | |
|     filesUnmatched: 0,
 | |
|     filesUpdated: 0,
 | |
|     matched: 0,
 | |
|     total: 0,
 | |
|     unchecked: 0,
 | |
|     uncheckedKeysByFile: [],
 | |
|     unmatched: 0,
 | |
|     updated: 0
 | |
|   },
 | |
|   startTime: 0,
 | |
|   success: true,
 | |
|   testResults: [],
 | |
|   wasInterrupted: false
 | |
| });
 | |
| 
 | |
| exports.makeEmptyAggregatedTestResult = makeEmptyAggregatedTestResult;
 | |
| 
 | |
| const buildFailureTestResult = (testPath, err) => ({
 | |
|   console: undefined,
 | |
|   displayName: '',
 | |
|   failureMessage: null,
 | |
|   leaks: false,
 | |
|   numFailingTests: 0,
 | |
|   numPassingTests: 0,
 | |
|   numPendingTests: 0,
 | |
|   numTodoTests: 0,
 | |
|   openHandles: [],
 | |
|   perfStats: {
 | |
|     end: 0,
 | |
|     start: 0
 | |
|   },
 | |
|   skipped: false,
 | |
|   snapshot: {
 | |
|     added: 0,
 | |
|     fileDeleted: false,
 | |
|     matched: 0,
 | |
|     unchecked: 0,
 | |
|     uncheckedKeys: [],
 | |
|     unmatched: 0,
 | |
|     updated: 0
 | |
|   },
 | |
|   sourceMaps: {},
 | |
|   testExecError: err,
 | |
|   testFilePath: testPath,
 | |
|   testResults: []
 | |
| }); // Add individual test result to an aggregated test result
 | |
| 
 | |
| exports.buildFailureTestResult = buildFailureTestResult;
 | |
| 
 | |
| const addResult = (aggregatedResults, testResult) => {
 | |
|   // `todos` are new as of Jest 24, and not all runners return it.
 | |
|   // Set it to `0` to avoid `NaN`
 | |
|   if (!testResult.numTodoTests) {
 | |
|     testResult.numTodoTests = 0;
 | |
|   }
 | |
| 
 | |
|   aggregatedResults.testResults.push(testResult);
 | |
|   aggregatedResults.numTotalTests +=
 | |
|     testResult.numPassingTests +
 | |
|     testResult.numFailingTests +
 | |
|     testResult.numPendingTests +
 | |
|     testResult.numTodoTests;
 | |
|   aggregatedResults.numFailedTests += testResult.numFailingTests;
 | |
|   aggregatedResults.numPassedTests += testResult.numPassingTests;
 | |
|   aggregatedResults.numPendingTests += testResult.numPendingTests;
 | |
|   aggregatedResults.numTodoTests += testResult.numTodoTests;
 | |
| 
 | |
|   if (testResult.testExecError) {
 | |
|     aggregatedResults.numRuntimeErrorTestSuites++;
 | |
|   }
 | |
| 
 | |
|   if (testResult.skipped) {
 | |
|     aggregatedResults.numPendingTestSuites++;
 | |
|   } else if (testResult.numFailingTests > 0 || testResult.testExecError) {
 | |
|     aggregatedResults.numFailedTestSuites++;
 | |
|   } else {
 | |
|     aggregatedResults.numPassedTestSuites++;
 | |
|   } // Snapshot data
 | |
| 
 | |
|   if (testResult.snapshot.added) {
 | |
|     aggregatedResults.snapshot.filesAdded++;
 | |
|   }
 | |
| 
 | |
|   if (testResult.snapshot.fileDeleted) {
 | |
|     aggregatedResults.snapshot.filesRemoved++;
 | |
|   }
 | |
| 
 | |
|   if (testResult.snapshot.unmatched) {
 | |
|     aggregatedResults.snapshot.filesUnmatched++;
 | |
|   }
 | |
| 
 | |
|   if (testResult.snapshot.updated) {
 | |
|     aggregatedResults.snapshot.filesUpdated++;
 | |
|   }
 | |
| 
 | |
|   aggregatedResults.snapshot.added += testResult.snapshot.added;
 | |
|   aggregatedResults.snapshot.matched += testResult.snapshot.matched;
 | |
|   aggregatedResults.snapshot.unchecked += testResult.snapshot.unchecked;
 | |
| 
 | |
|   if (
 | |
|     testResult.snapshot.uncheckedKeys &&
 | |
|     testResult.snapshot.uncheckedKeys.length > 0
 | |
|   ) {
 | |
|     aggregatedResults.snapshot.uncheckedKeysByFile.push({
 | |
|       filePath: testResult.testFilePath,
 | |
|       keys: testResult.snapshot.uncheckedKeys
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   aggregatedResults.snapshot.unmatched += testResult.snapshot.unmatched;
 | |
|   aggregatedResults.snapshot.updated += testResult.snapshot.updated;
 | |
|   aggregatedResults.snapshot.total +=
 | |
|     testResult.snapshot.added +
 | |
|     testResult.snapshot.matched +
 | |
|     testResult.snapshot.unmatched +
 | |
|     testResult.snapshot.updated;
 | |
| };
 | |
| 
 | |
| exports.addResult = addResult;
 |