From c00e781193cf21cfd7fa146cb6307a89ee99f829 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Mon, 27 Jan 2025 14:19:19 -0800 Subject: [PATCH] Reuse metadata instance between FullConfigInternal instances --- packages/playwright/src/common/config.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/playwright/src/common/config.ts b/packages/playwright/src/common/config.ts index 2248dfb79d..c2dc2d6edf 100644 --- a/packages/playwright/src/common/config.ts +++ b/packages/playwright/src/common/config.ts @@ -81,6 +81,10 @@ export class FullConfigInternal { this.globalSetups = (Array.isArray(userConfig.globalSetup) ? userConfig.globalSetup : [userConfig.globalSetup]).map(s => resolveScript(s, configDir)).filter(script => script !== undefined); this.globalTeardowns = (Array.isArray(userConfig.globalTeardown) ? userConfig.globalTeardown : [userConfig.globalTeardown]).map(s => resolveScript(s, configDir)).filter(script => script !== undefined); + // Make sure we reuse same metadata instance between FullConfigInternal instances, + // so that plugins such as gitCommitInfoPlugin can populate metadata once. + userConfig.metadata = userConfig.metadata || {}; + this.config = { configFile: resolvedConfigFile, rootDir: pathResolve(configDir, userConfig.testDir) || configDir, @@ -92,7 +96,7 @@ export class FullConfigInternal { grep: takeFirst(userConfig.grep, defaultGrep), grepInvert: takeFirst(userConfig.grepInvert, null), maxFailures: takeFirst(configCLIOverrides.debug ? 1 : undefined, configCLIOverrides.maxFailures, userConfig.maxFailures, 0), - metadata: takeFirst(userConfig.metadata, {}), + metadata: userConfig.metadata, preserveOutput: takeFirst(userConfig.preserveOutput, 'always'), reporter: takeFirst(configCLIOverrides.reporter, resolveReporters(userConfig.reporter, configDir), [[defaultReporter]]), reportSlowTests: takeFirst(userConfig.reportSlowTests, { max: 5, threshold: 15000 }),