diff --git a/test/integration/test_utils.mjs b/test/integration/test_utils.mjs index 65c7f2914..92a7a7913 100644 --- a/test/integration/test_utils.mjs +++ b/test/integration/test_utils.mjs @@ -189,16 +189,22 @@ async function getSpanRectFromText(page, pageNumber, text) { async function waitForEvent(page, eventName, timeout = 5000) { const handle = await page.evaluateHandle( (name, timeOut) => { - let callback = null; + let callback = null, + timeoutId = null; return [ Promise.race([ new Promise(resolve => { // add event listener and wait for event to fire before returning - callback = () => resolve(false); + callback = () => { + if (timeoutId) { + clearTimeout(timeoutId); + } + resolve(false); + }; document.addEventListener(name, callback, { once: true }); }), new Promise(resolve => { - setTimeout(() => { + timeoutId = setTimeout(() => { document.removeEventListener(name, callback); resolve(true); }, timeOut);