'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.createEmptyTestResult = 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, filesRemovedList: [], 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; const createEmptyTestResult = () => ({ leaks: false, // That's legacy code, just adding it as needed for typing 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 }, testFilePath: '', testResults: [] }); exports.createEmptyTestResult = createEmptyTestResult;