From b79bb32c8259af304822ef46654f2ec0619bdb7b Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Tue, 1 Mar 2022 13:43:38 -0800 Subject: [PATCH] chore: do not stall on actions when test timeout is 0 (#12418) --- .../playwright-core/src/utils/timeoutSettings.ts | 13 +++++++++---- packages/playwright-test/src/index.ts | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/playwright-core/src/utils/timeoutSettings.ts b/packages/playwright-core/src/utils/timeoutSettings.ts index 822aa20baa..6b25f3975f 100644 --- a/packages/playwright-core/src/utils/timeoutSettings.ts +++ b/packages/playwright-core/src/utils/timeoutSettings.ts @@ -18,7 +18,6 @@ import { debugMode } from './utils'; export const DEFAULT_TIMEOUT = 30000; -const TIMEOUT = debugMode() ? 0 : DEFAULT_TIMEOUT; export class TimeoutSettings { private _parent: TimeoutSettings | undefined; @@ -42,26 +41,32 @@ export class TimeoutSettings { return options.timeout; if (this._defaultNavigationTimeout !== undefined) return this._defaultNavigationTimeout; + if (debugMode()) + return 0; if (this._defaultTimeout !== undefined) return this._defaultTimeout; if (this._parent) return this._parent.navigationTimeout(options); - return TIMEOUT; + return DEFAULT_TIMEOUT; } timeout(options: { timeout?: number }): number { if (typeof options.timeout === 'number') return options.timeout; + if (debugMode()) + return 0; if (this._defaultTimeout !== undefined) return this._defaultTimeout; if (this._parent) return this._parent.timeout(options); - return TIMEOUT; + return DEFAULT_TIMEOUT; } static timeout(options: { timeout?: number }): number { if (typeof options.timeout === 'number') return options.timeout; - return TIMEOUT; + if (debugMode()) + return 0; + return DEFAULT_TIMEOUT; } } diff --git a/packages/playwright-test/src/index.ts b/packages/playwright-test/src/index.ts index eb8f46b976..bdce28bdbc 100644 --- a/packages/playwright-test/src/index.ts +++ b/packages/playwright-test/src/index.ts @@ -285,8 +285,8 @@ export const test = _baseTest.extend({ const onDidCreateBrowserContext = async (context: BrowserContext) => { createdContexts.add(context); - context.setDefaultTimeout(testInfo.timeout === 0 ? 0 : (actionTimeout || 0)); - context.setDefaultNavigationTimeout(testInfo.timeout === 0 ? 0 : (navigationTimeout || actionTimeout || 0)); + context.setDefaultTimeout(actionTimeout || 0); + context.setDefaultNavigationTimeout(navigationTimeout || actionTimeout || 0); await startTracing(context.tracing); const listener = createInstrumentationListener(context); (context as any)._instrumentation.addListener(listener);