diff --git a/tests/lib/TestRegister.mjs b/tests/lib/TestRegister.mjs index 7b1be8c4..e7949753 100644 --- a/tests/lib/TestRegister.mjs +++ b/tests/lib/TestRegister.mjs @@ -48,6 +48,7 @@ class TestRegister { * Runs all the tests in the register. */ runTests () { + console.log("Running tests..."); return Promise.all( this.tests.map(function(test, i) { const chef = new Chef(); @@ -103,6 +104,8 @@ class TestRegister { * Run all api related tests and wrap results in report format */ runApiTests() { + console.log("Running tests..."); + return Promise.all(this.apiTests.map(async function(test, i) { const result = { test: test, diff --git a/tests/lib/utils.mjs b/tests/lib/utils.mjs index c04290b2..0f85ae30 100644 --- a/tests/lib/utils.mjs +++ b/tests/lib/utils.mjs @@ -15,59 +15,63 @@ * @param {string} status * @returns {string} */ -const statusToIcon = function statusToIcon(status) { - const icons = { +function statusToIcon(status) { + return { erroring: "🔥", failing: "❌", passing: "✔️️", - }; - return icons[status] || "?"; -}; - + }[status] || "?"; +} /** - * Displays a given test result in the console. * Counts test statuses. * - * @param {Object} testStatusCounts + * @param {Object} testStatus * @param {Object} testResult */ function handleTestResult(testStatus, testResult) { testStatus.allTestsPassing = testStatus.allTestsPassing && testResult.status === "passing"; - const newCount = (testStatus.counts[testResult.status] || 0) + 1; - testStatus.counts[testResult.status] = newCount; + testStatus.counts[testResult.status] = (testStatus.counts[testResult.status] || 0) + 1; testStatus.counts.total += 1; - console.log([ - statusToIcon(testResult.status), - testResult.test.name - ].join(" ")); - - if (testResult.output) { - console.log( - testResult.output - .trim() - .replace(/^/, "\t") - .replace(/\n/g, "\n\t") - ); - } } /** - * Log each test result, count tests and failures. Log test suite run duration. + * Log each test result, count tests and failures. * * @param {Object} testStatus - object describing test run data * @param {Object[]} results - results from TestRegister */ export function logTestReport(testStatus, results) { - results.forEach(r => handleTestResult(testStatus, r)); - console.log("\n"); + console.log("Tests completed."); + results.forEach(r => handleTestResult(testStatus, r)); + + console.log(); for (const testStatusCount in testStatus.counts) { const count = testStatus.counts[testStatusCount]; if (count > 0) { - console.log(testStatusCount.toUpperCase(), count); + console.log(testStatusCount.toUpperCase() + "\t" + count); } } + 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) { + console.log( + testResult.output + .trim() + .replace(/^/, "\t") + .replace(/\n/g, "\n\t") + ); + } + }); + console.log(); process.exit(testStatus.allTestsPassing ? 0 : 1); } @@ -81,4 +85,3 @@ export function setLongTestFailure() { process.exit(1); }, 60 * 1000); } - diff --git a/tests/node/tests/operations.mjs b/tests/node/tests/operations.mjs index ecbfb570..ac846d93 100644 --- a/tests/node/tests/operations.mjs +++ b/tests/node/tests/operations.mjs @@ -906,7 +906,7 @@ smothering ampersand abreast }), it("to unix timestamp", () => { - assert.strictEqual(chef.toUNIXTimestamp("04-01-2001").toString(), "986083200 (Sun 1 April 2001 00:00:00 UTC)"); + assert.strictEqual(chef.toUNIXTimestamp("2001-04-01").toString(), "986083200 (Sun 1 April 2001 00:00:00 UTC)"); }), it("Translate DateTime format", () => {