From 05e9550751ab84c8ae3d920673be58ba9c00c565 Mon Sep 17 00:00:00 2001 From: Alex Rudenko Date: Mon, 29 Aug 2022 13:27:55 +0200 Subject: [PATCH] fix: forward timeout waitForFileChooser --- src/common/Page.ts | 3 ++- src/util/DeferredPromise.ts | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/common/Page.ts b/src/common/Page.ts index f7e8a769efb41..9cafd838c5fc0 100644 --- a/src/common/Page.ts +++ b/src/common/Page.ts @@ -770,7 +770,8 @@ export class Page extends EventEmitter { const {timeout = this.#timeoutSettings.timeout()} = options; const promise = createDeferredPromiseWithTimer( - `Waiting for \`FileChooser\` failed: ${timeout}ms exceeded` + `Waiting for \`FileChooser\` failed: ${timeout}ms exceeded`, + timeout ); this.#fileChooserPromises.add(promise); return promise.catch(error => { diff --git a/src/util/DeferredPromise.ts b/src/util/DeferredPromise.ts index a91f5d9672ce1..b6be161e379e7 100644 --- a/src/util/DeferredPromise.ts +++ b/src/util/DeferredPromise.ts @@ -31,10 +31,13 @@ export function createDeferredPromiseWithTimer( resolver = resolve; rejector = reject; }); - const timeoutId = setTimeout(() => { - isRejected = true; - rejector(new TimeoutError(timeoutMessage)); - }, timeout); + const timeoutId = + timeout > 0 + ? setTimeout(() => { + isRejected = true; + rejector(new TimeoutError(timeoutMessage)); + }, timeout) + : undefined; return Object.assign(taskPromise, { resolved: () => { return isResolved;