Skip to content

Commit 1f87e3d

Browse files
committed
[FIX] web: prevent unwanted situations with freezeTime in hoot
The freezeTime utility function had a very strange behaviour: if it is called without an argument, it would toggle the current value. This means that if i read a test that calls freezeTime, i actually do not know if the time is frozen after that function call. This could be a problem in many subtle situations. For example, if a test is using freezeTime, and then later, someone add a `beforeEach(freezeTime)` in that suite without removing the existing freezeTime, then weirdly, the test would no longer be "protected". This commit simplifies the behaviour of freezeTime to make sure we know what we are doing in all cases. closes odoo#220639 X-original-commit: fcde459 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Géry Debongnie <ged@odoo.com>
1 parent ae432ab commit 1f87e3d

3 files changed

Lines changed: 8 additions & 5 deletions

File tree

addons/web/static/lib/hoot-dom/helpers/time.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,12 @@ export function delay(duration) {
227227
return new Promise((resolve) => setTimeout(resolve, duration));
228228
}
229229

230-
/**
231-
* @param {boolean} setFreeze
232-
*/
233-
export function freezeTime(setFreeze) {
234-
frozen = setFreeze ?? !frozen;
230+
export function freezeTime() {
231+
frozen = true;
232+
}
233+
234+
export function unfreezeTime() {
235+
frozen = false;
235236
}
236237

237238
export function getTimeOffset() {

addons/web/static/lib/hoot-dom/hoot-dom.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export {
5959
Deferred,
6060
delay,
6161
freezeTime,
62+
unfreezeTime,
6263
microTick,
6364
setFrameRate,
6465
tick,

addons/web/static/lib/hoot/hoot-mock.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export {
1212
Deferred,
1313
delay,
1414
freezeTime,
15+
unfreezeTime,
1516
microTick,
1617
runAllTimers,
1718
setFrameRate,

0 commit comments

Comments
 (0)