You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
4.7 KiB
188 lines
4.7 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, '__esModule', { |
|
value: true |
|
}); |
|
exports.makeEmptyAggregatedTestResult = |
|
exports.createEmptyTestResult = |
|
exports.buildFailureTestResult = |
|
exports.addResult = |
|
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: undefined, |
|
failureMessage: null, |
|
leaks: false, |
|
numFailingTests: 0, |
|
numPassingTests: 0, |
|
numPendingTests: 0, |
|
numTodoTests: 0, |
|
openHandles: [], |
|
perfStats: { |
|
end: 0, |
|
runtime: 0, |
|
slow: false, |
|
start: 0 |
|
}, |
|
skipped: false, |
|
snapshot: { |
|
added: 0, |
|
fileDeleted: false, |
|
matched: 0, |
|
unchecked: 0, |
|
uncheckedKeys: [], |
|
unmatched: 0, |
|
updated: 0 |
|
}, |
|
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, |
|
runtime: 0, |
|
slow: false, |
|
start: 0 |
|
}, |
|
skipped: false, |
|
snapshot: { |
|
added: 0, |
|
fileDeleted: false, |
|
matched: 0, |
|
unchecked: 0, |
|
uncheckedKeys: [], |
|
unmatched: 0, |
|
updated: 0 |
|
}, |
|
testFilePath: '', |
|
testResults: [] |
|
}); |
|
|
|
exports.createEmptyTestResult = createEmptyTestResult;
|
|
|