189 lines
4.7 KiB
JavaScript
189 lines
4.7 KiB
JavaScript
'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;
|