From 9b785662f6e04f13f183985cf1f3b341e3480db3 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Fri, 18 Oct 2024 08:53:39 +0200 Subject: [PATCH] make behaviour congruent for globalTeardown --- packages/playwright/src/runner/tasks.ts | 7 ++++++- tests/playwright-test/global-setup.spec.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/playwright/src/runner/tasks.ts b/packages/playwright/src/runner/tasks.ts index 528cac47cd..aeaceadc8b 100644 --- a/packages/playwright/src/runner/tasks.ts +++ b/packages/playwright/src/runner/tasks.ts @@ -182,10 +182,15 @@ function createGlobalSetupTask(index: number, length: number): Task { globalSetupFinished = true; }, teardown: async ({ config }) => { + let firstError: any; if (typeof globalSetupResult === 'function') - await globalSetupResult(); + try { await globalSetupResult(); } catch (error) { firstError = error; } + if (globalSetupFinished) await teardownHook?.(config.config); + + if (firstError) + throw firstError; }, }; } diff --git a/tests/playwright-test/global-setup.spec.ts b/tests/playwright-test/global-setup.spec.ts index f1bd7b7458..177d29a91d 100644 --- a/tests/playwright-test/global-setup.spec.ts +++ b/tests/playwright-test/global-setup.spec.ts @@ -422,7 +422,7 @@ test('globalSetup should support multiple', async ({ runInlineTest }) => { 'globalSetup3Function', 'globalTeardown2', 'globalSetup1Function', - // 'globalTeardown1' is missing, because globalSetup1Function errored out. + 'globalTeardown1', ]); expect(result.output).toContain('Error: kaboom'); });