From 0899a5a0d490e1ece55ddf3621c38bd111137a70 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Wed, 17 Jul 2019 06:57:24 +0000 Subject: [PATCH] [FIX] web: tests: mock scroll in beforeEach When the 'before' (resp. 'after') hook is defined on a QUnit module, it is executed once, before (resp. after) the whole module is executed. When the test suite is executed several times, tests that failed in the previous execution are always executed first, separately from the other tests of their module. In that case, the 'before' hook is executed directly (before the execution of the failed test), but the 'after' hook is only executed once the whole module has been executed. This means that a lot of other tests, coming from other modules, can be executed in the meantime. In calendar tests, we used the 'before' and 'after' hooks to catch scroll events. So, when a calendar test failed, and the suite was re-run, some tests depending on the scroll failed. To prevent this, we use 'beforeEach' and 'afterEach' hooks instead, as they are executed before and after each test. closes odoo/odoo#34932 Signed-off-by: Julien Mougenot (JUM) --- addons/web/static/tests/views/calendar_tests.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index babb22a5ba1..16e304c14a6 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -34,10 +34,8 @@ function _preventScroll(ev) { } QUnit.module('Views', { - before: function () { - window.addEventListener('scroll', _preventScroll, true); - }, beforeEach: function () { + window.addEventListener('scroll', _preventScroll, true); session.uid = -1; // TO CHECK this.data = { event: { @@ -106,7 +104,7 @@ QUnit.module('Views', { }, }; }, - after: function () { + afterEach: function () { window.removeEventListener('scroll', _preventScroll, true); }, }, function () {