From dba9cd97ef30ad074bb9538f46e7db6bb4539f4e Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Thu, 31 Mar 2022 21:31:06 +0000 Subject: [PATCH] [IMP] web: qunit: add tests counter in topbar This commit adds an information in the topbar (thus always visible) to indicate the number of tests that have passed, failed and the number of tests that have been skipped. closes odoo/odoo#87713 Signed-off-by: Samuel Degueldre --- addons/web/static/tests/qunit.js | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/addons/web/static/tests/qunit.js b/addons/web/static/tests/qunit.js index 1677bd76157..c5de8c71778 100644 --- a/addons/web/static/tests/qunit.js +++ b/addons/web/static/tests/qunit.js @@ -413,4 +413,51 @@ addSortButton(); } }); + + // ----------------------------------------------------------------------------- + // Add statistics + // ----------------------------------------------------------------------------- + + let passedEl; + let failedEl; + let skippedEl; + function insertStats() { + const toolbar = document.querySelector("#qunit-testrunner-toolbar .qunit-url-config"); + const statsEl = document.createElement("label"); + passedEl = document.createElement("span"); + passedEl.classList.add("text-success", "ml-5", "mr-3"); + statsEl.appendChild(passedEl); + failedEl = document.createElement("span"); + failedEl.classList.add("text-danger", "mr-3"); + statsEl.appendChild(failedEl); + skippedEl = document.createElement("span"); + skippedEl.classList.add("text-dark"); + statsEl.appendChild(skippedEl); + toolbar.appendChild(statsEl); + } + + let testPassedCount = 0; + let testFailedCount = 0; + let testSkippedCount = 0; + QUnit.testDone(({ skipped, failed }) => { + if (!passedEl) { + insertStats(); + } + if (!skipped) { + if (failed > 0) { + testFailedCount++; + } else { + testPassedCount++; + } + } else { + testSkippedCount++; + } + passedEl.innerText = `${testPassedCount} passed`; + if (testFailedCount > 0) { + failedEl.innerText = `${testFailedCount} failed`; + } + if (testSkippedCount > 0) { + skippedEl.innerText = `${testSkippedCount} skipped`; + } + }); })();