[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) <Arcasias@users.noreply.github.com>
This commit is contained in:
@@ -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 () {
|
||||
|
||||
Reference in New Issue
Block a user