mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-10 10:15:37 +02:00
Merge pull request #18325 from timvandermeij/integration-test-timeouts
Fix the timeout logic in the `waitForEvent` integration test helper function
This commit is contained in:
commit
4b95d689de
1 changed files with 9 additions and 3 deletions
|
@ -189,16 +189,22 @@ async function getSpanRectFromText(page, pageNumber, text) {
|
||||||
async function waitForEvent(page, eventName, timeout = 5000) {
|
async function waitForEvent(page, eventName, timeout = 5000) {
|
||||||
const handle = await page.evaluateHandle(
|
const handle = await page.evaluateHandle(
|
||||||
(name, timeOut) => {
|
(name, timeOut) => {
|
||||||
let callback = null;
|
let callback = null,
|
||||||
|
timeoutId = null;
|
||||||
return [
|
return [
|
||||||
Promise.race([
|
Promise.race([
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
// add event listener and wait for event to fire before returning
|
// 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 });
|
document.addEventListener(name, callback, { once: true });
|
||||||
}),
|
}),
|
||||||
new Promise(resolve => {
|
new Promise(resolve => {
|
||||||
setTimeout(() => {
|
timeoutId = setTimeout(() => {
|
||||||
document.removeEventListener(name, callback);
|
document.removeEventListener(name, callback);
|
||||||
resolve(true);
|
resolve(true);
|
||||||
}, timeOut);
|
}, timeOut);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue