From 7b27fc3916030d1a0892a0cc526a0d6b99a673c6 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Tue, 21 May 2024 14:36:31 -0700 Subject: [PATCH] chore: pass outputDir to uimode (#30941) Fixes https://github.com/microsoft/playwright/issues/30886 --- .../playwright-core/src/server/trace/viewer/traceViewer.ts | 3 +++ packages/playwright/src/isomorphic/testServerInterface.ts | 1 + packages/playwright/src/program.ts | 1 + packages/playwright/src/runner/testServer.ts | 1 + packages/trace-viewer/src/ui/uiModeView.tsx | 2 ++ 5 files changed, 8 insertions(+) diff --git a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts index 741a927757..3c2872e6fa 100644 --- a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts +++ b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts @@ -46,6 +46,7 @@ export type TraceViewerRedirectOptions = { reporter?: string[]; webApp?: string; isServer?: boolean; + outputDir?: string; }; export type TraceViewerAppOptions = { @@ -129,6 +130,8 @@ export async function installRootRedirect(server: HttpServer, traceUrls: string[ params.append('timeout', String(options.timeout)); if (options.headed) params.append('headed', ''); + if (options.outputDir) + params.append('outputDir', options.outputDir); for (const reporter of options.reporter || []) params.append('reporter', reporter); diff --git a/packages/playwright/src/isomorphic/testServerInterface.ts b/packages/playwright/src/isomorphic/testServerInterface.ts index 4abf3f02fe..c63a9793d3 100644 --- a/packages/playwright/src/isomorphic/testServerInterface.ts +++ b/packages/playwright/src/isomorphic/testServerInterface.ts @@ -92,6 +92,7 @@ export interface TestServerInterface { headed?: boolean; workers?: number | string; timeout?: number, + outputDir?: string; reporters?: string[], trace?: 'on' | 'off'; video?: 'on' | 'off'; diff --git a/packages/playwright/src/program.ts b/packages/playwright/src/program.ts index b69d3d6b10..f462b81d43 100644 --- a/packages/playwright/src/program.ts +++ b/packages/playwright/src/program.ts @@ -170,6 +170,7 @@ async function runTests(args: string[], opts: { [key: string]: any }) { reporter: Array.isArray(opts.reporter) ? opts.reporter : opts.reporter ? [opts.reporter] : undefined, workers: cliOverrides.workers, timeout: cliOverrides.timeout, + outputDir: cliOverrides.outputDir, }); await stopProfiling('runner'); if (status === 'restarted') diff --git a/packages/playwright/src/runner/testServer.ts b/packages/playwright/src/runner/testServer.ts index d2806b03f6..e797ed9b08 100644 --- a/packages/playwright/src/runner/testServer.ts +++ b/packages/playwright/src/runner/testServer.ts @@ -313,6 +313,7 @@ class TestServerDispatcher implements TestServerInterface { _optionContextReuseMode: params.reuseContext ? 'when-possible' : undefined, _optionConnectOptions: params.connectWsEndpoint ? { wsEndpoint: params.connectWsEndpoint } : undefined, }, + outputDir: params.outputDir, workers: params.workers, }; if (params.trace === 'on') diff --git a/packages/trace-viewer/src/ui/uiModeView.tsx b/packages/trace-viewer/src/ui/uiModeView.tsx index 9c067dbc89..914280cb34 100644 --- a/packages/trace-viewer/src/ui/uiModeView.tsx +++ b/packages/trace-viewer/src/ui/uiModeView.tsx @@ -60,6 +60,7 @@ const queryParams = { workers: searchParams.get('workers') || undefined, timeout: searchParams.has('timeout') ? +searchParams.get('timeout')! : undefined, headed: searchParams.has('headed'), + outputDir: searchParams.get('outputDir') || undefined, reporters: searchParams.has('reporter') ? searchParams.getAll('reporter') : undefined, }; @@ -283,6 +284,7 @@ export const UIModeView: React.FC<{}> = ({ workers: queryParams.workers, timeout: queryParams.timeout, headed: queryParams.headed, + outputDir: queryParams.outputDir, reporters: queryParams.reporters, trace: 'on', });