From 18ef0727e4e0d9b92e59dbf93ecd612804bb18a4 Mon Sep 17 00:00:00 2001 From: Jorge Pinna Puissant Date: Thu, 13 Apr 2023 06:54:25 +0000 Subject: [PATCH] [IMP] web: qunit: add QUnit.todo counter in topbar This commit adds an information in the topbar (thus always visible) to indicate the number of QUnit.todo tests that have been completed and the number of QUnit.todo tests that are uncompleted. closes odoo/odoo#118402 Signed-off-by: Nicolas Seinlet (nse) --- addons/web/static/tests/qunit.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/addons/web/static/tests/qunit.js b/addons/web/static/tests/qunit.js index 9fd8fa50905..28d76587167 100644 --- a/addons/web/static/tests/qunit.js +++ b/addons/web/static/tests/qunit.js @@ -493,15 +493,23 @@ export function setupQUnit() { let passedEl; let failedEl; let skippedEl; + let todoCompletedEl; + let todoUncompletedEl; 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", "ms-5", "me-3"); statsEl.appendChild(passedEl); + todoCompletedEl = document.createElement("span"); + todoCompletedEl.classList.add("text-warning", "me-3"); + statsEl.appendChild(todoCompletedEl); failedEl = document.createElement("span"); failedEl.classList.add("text-danger", "me-3"); statsEl.appendChild(failedEl); + todoUncompletedEl = document.createElement("span"); + todoUncompletedEl.classList.add("text-primary", "me-3"); + statsEl.appendChild(todoUncompletedEl); skippedEl = document.createElement("span"); skippedEl.classList.add("text-dark"); statsEl.appendChild(skippedEl); @@ -511,20 +519,36 @@ export function setupQUnit() { let testPassedCount = 0; let testFailedCount = 0; let testSkippedCount = 0; - QUnit.testDone(({ skipped, failed }) => { + let todoCompletedCount = 0; + let todoUncompletedCount = 0; + QUnit.testDone(({ skipped, failed, todo }) => { if (!passedEl) { insertStats(); } if (!skipped) { if (failed > 0) { - testFailedCount++; + if (todo) { + todoUncompletedCount++; + } else { + testFailedCount++; + } } else { - testPassedCount++; + if (todo) { + todoCompletedCount++; + } else { + testPassedCount++; + } } } else { testSkippedCount++; } passedEl.innerText = `${testPassedCount} passed`; + if (todoCompletedCount > 0) { + todoCompletedEl.innerText = `${todoCompletedCount} todo completed`; + } + if (todoUncompletedCount > 0) { + todoUncompletedEl.innerText = `${todoUncompletedCount} todo uncompleted`; + } if (testFailedCount > 0) { failedEl.innerText = `${testFailedCount} failed`; }