corde
Version:
A simple library for Discord bot tests
88 lines (69 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.summary = void 0;
const consts_1 = require("../consts");
class Summary {
print(runnerReport) {
let message = "\n";
message += this.buildTestFilesSummary(runnerReport) + "\n";
message += this.buildTestsSummary(runnerReport) + "\n";
if (runnerReport.testTimer) {
message += "Time: " + runnerReport.testTimer;
}
console.log(message);
return message;
}
buildTestFilesSummary(runnerReport) {
return this.buildSummaryLine({
fail: runnerReport.totalTestFilesFailed,
label: "Test Files: ",
success: runnerReport.totalTestFilesPassed,
totalEmpty: runnerReport.totalEmptyTestFiles,
total: runnerReport.totalTestFiles,
});
}
buildTestsSummary(runnerReport) {
return this.buildSummaryLine({
fail: runnerReport.totalTestsFailed,
label: "Tests: ",
success: runnerReport.totalTestsPassed,
totalEmpty: runnerReport.totalEmptyTests,
total: runnerReport.totalTests,
});
}
buildSummaryLine(data) {
const { label, fail, success, total, totalEmpty } = data;
const partialLine = [];
if (success > 0) {
partialLine.push((0, consts_1.TEXT_PASS)(`${success} passed`));
}
if (fail > 0) {
partialLine.push((0, consts_1.TEXT_FAIL)(`${fail} failed`));
}
if (totalEmpty > 0) {
partialLine.push((0, consts_1.TEXT_EMPTY)(`${totalEmpty} empty`));
}
if (partialLine.length) {
return `${label}${this.buildSummaryLinePhrase(partialLine)}. ${total} total`;
}
if (total === 0) {
return `${label}${(0, consts_1.TEXT_EMPTY)(`${total} total`)}`;
}
return `${label}${total} total`;
}
buildSummaryLinePhrase(parts) {
let builtLine = "";
for (let i = 0; i < parts.length; i++) {
if (parts.length > 2 && i < 2) {
builtLine += parts[i] + ", ";
} else {
builtLine += parts[i] + " and ";
}
}
return builtLine.substring(0, builtLine.length - 5);
}
}
const summary = new Summary();
exports.summary = summary;