From 2ba5818fac9a39211aaa9942f9bf83dadfcced8e Mon Sep 17 00:00:00 2001 From: tsm-odoo Date: Tue, 25 Apr 2023 10:21:32 +0000 Subject: [PATCH] [FIX] bus: fix non-deterministic bus tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since [1], some bus tests were failing in a non-deterministic way. This PR fixes the issue. [1]: https://github.com/odoo/odoo/pull/119525 Fixes runbot errors: 20755, 20756, 19933. closes odoo/odoo#119807 X-original-commit: c52670c9e91c369410422afacfbd9080d432e8bd Signed-off-by: Sébastien Theys (seb) Signed-off-by: Stockbauer Matthieu (tsm) --- addons/bus/static/tests/bus_tests.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/bus/static/tests/bus_tests.js b/addons/bus/static/tests/bus_tests.js index 73d14e7b263..0aad12c27c8 100644 --- a/addons/bus/static/tests/bus_tests.js +++ b/addons/bus/static/tests/bus_tests.js @@ -100,7 +100,7 @@ QUnit.module('Bus', { const pyEnv = await startServer(); const env = await makeTestEnv({ activateMockServer: true }); - env.services["bus_service"].start(); + await env.services["bus_service"].start(); await nextTick(); env.services['bus_service'].addEventListener('notification', ({ detail: notifications }) => { assert.step('notification - ' + notifications.map(notif => notif.payload).toString()); @@ -469,14 +469,20 @@ QUnit.module('Bus', { QUnit.test("Disconnect on offline, re-connect on online", async function (assert) { patchWebsocketWorkerWithCleanup(); + let websocketConnectedDeferred = makeDeferred(); const env = await makeTestEnv(); - env.services["bus_service"].addEventListener("connect", () => assert.step("connect")); + env.services["bus_service"].addEventListener("connect", () => { + assert.step("connect"); + websocketConnectedDeferred.resolve(); + websocketConnectedDeferred = makeDeferred(); + }); env.services["bus_service"].addEventListener("disconnect", () => assert.step("disconnect")); await env.services["bus_service"].start(); + await websocketConnectedDeferred; window.dispatchEvent(new Event("offline")); await nextTick(); window.dispatchEvent(new Event("online")); - await nextTick(); + await websocketConnectedDeferred; assert.verifySteps(["connect", "disconnect", "connect"]); });