mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[FIX] test: timing issue
Before this commit, we artificially replaced in the tests the requestAnimationFrame by a setTimeout, to actually increase the speed of the tests. However, this is not really a true replacement. For example, a real setTimeout can come before or after a real nextAnimationFrame, depending on when/where it is requested. Also, this change exposed another problem: the nextTick function did a setTimeout before a nextanimationframe. This is not a problem when nextAnimationFrame is replaced by a setTimeout, because then all expectations holds in owl. However, it is wrong: to get to the next animation frame, we need to request an animation frame, and THEN wait with a setTimeout. closes #729
This commit is contained in:
+2
-9
@@ -8,12 +8,6 @@ import "../src/qweb/extensions";
|
|||||||
import "../src/component/directive";
|
import "../src/component/directive";
|
||||||
import { browser } from "../src/browser";
|
import { browser } from "../src/browser";
|
||||||
|
|
||||||
// modifies scheduler to make it faster to test components
|
|
||||||
scheduler.requestAnimationFrame = function (callback: FrameRequestCallback) {
|
|
||||||
setTimeout(callback, 1);
|
|
||||||
return 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Some static cleanup
|
// Some static cleanup
|
||||||
let nextSlotId;
|
let nextSlotId;
|
||||||
let slots;
|
let slots;
|
||||||
@@ -43,9 +37,8 @@ export function nextMicroTick(): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export async function nextTick(): Promise<void> {
|
export async function nextTick(): Promise<void> {
|
||||||
return new Promise(function (resolve) {
|
await new Promise((resolve) => scheduler.requestAnimationFrame(resolve));
|
||||||
setTimeout(() => scheduler.requestAnimationFrame(() => resolve()));
|
await new Promise((resolve) => setTimeout(resolve));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function makeTestFixture() {
|
export function makeTestFixture() {
|
||||||
|
|||||||
Reference in New Issue
Block a user