add formatter

This commit is contained in:
Hare Sudhan 2024-02-24 22:59:51 -05:00
parent c4e7c41a6e
commit ce30989adc
693 changed files with 51226 additions and 26671 deletions

View file

@ -8,7 +8,6 @@
* @license Apache-2.0
*/
/**
* Helper function to convert a status to an icon.
*
@ -16,11 +15,13 @@
* @returns {string}
*/
function statusToIcon(status) {
return {
erroring: "🔥",
failing: "❌",
passing: "✔️️",
}[status] || "?";
return (
{
erroring: "🔥",
failing: "❌",
passing: "✔️️",
}[status] || "?"
);
}
/**
@ -30,12 +31,18 @@ function statusToIcon(status) {
* @param {Object} testResult
*/
function handleTestResult(testStatus, testResult) {
testStatus.allTestsPassing = testStatus.allTestsPassing && testResult.status === "passing";
testStatus.counts[testResult.status] = (testStatus.counts[testResult.status] || 0) + 1;
testStatus.allTestsPassing =
testStatus.allTestsPassing && testResult.status === "passing";
testStatus.counts[testResult.status] =
(testStatus.counts[testResult.status] || 0) + 1;
testStatus.counts.total += 1;
if (testResult.duration > 2000) {
console.log(`'${testResult.test.name}' took ${(testResult.duration / 1000).toFixed(1)}s to complete`);
console.log(
`'${testResult.test.name}' took ${(
testResult.duration / 1000
).toFixed(1)}s to complete`,
);
}
}
@ -46,7 +53,7 @@ function handleTestResult(testStatus, testResult) {
* @param {Object[]} results - results from TestRegister
*/
export function logTestReport(testStatus, results) {
results.forEach(r => handleTestResult(testStatus, r));
results.forEach((r) => handleTestResult(testStatus, r));
console.log();
for (const testStatusCount in testStatus.counts) {
@ -58,21 +65,24 @@ export function logTestReport(testStatus, results) {
console.log();
// Print error messages for tests that didn't pass
results.filter(res => res.status !== "passing").forEach(testResult => {
console.log([
statusToIcon(testResult.status),
testResult.test.name
].join(" "));
if (testResult.output) {
results
.filter((res) => res.status !== "passing")
.forEach((testResult) => {
console.log(
testResult.output
.trim()
.replace(/^/, "\t")
.replace(/\n/g, "\n\t")
[statusToIcon(testResult.status), testResult.test.name].join(
" ",
),
);
}
});
if (testResult.output) {
console.log(
testResult.output
.trim()
.replace(/^/, "\t")
.replace(/\n/g, "\n\t"),
);
}
});
console.log();
process.exit(testStatus.allTestsPassing ? 0 : 1);
@ -83,8 +93,10 @@ export function logTestReport(testStatus, results) {
*/
export function setLongTestFailure() {
const timeLimit = 120;
setTimeout(function() {
console.log(`Tests took longer than ${timeLimit} seconds to run, returning.`);
setTimeout(function () {
console.log(
`Tests took longer than ${timeLimit} seconds to run, returning.`,
);
process.exit(1);
}, timeLimit * 1000);
}