diff --git a/packages/playwright-core/src/grid/dockerGridFactory.ts b/packages/playwright-core/src/grid/dockerGridFactory.ts index b230575f87..b9a9410d90 100644 --- a/packages/playwright-core/src/grid/dockerGridFactory.ts +++ b/packages/playwright-core/src/grid/dockerGridFactory.ts @@ -28,8 +28,7 @@ const dockerFactory: GridFactory = { const { vncUrl } = await launchDockerGridAgent(options.agentId, options.gridURL); /* eslint-disable no-console */ console.log(``); - console.log(`✨ Running browsers inside docker container ✨`); - console.log(`- look inside: ${vncUrl}`); + console.log(`✨ Running browsers inside docker container: ${vncUrl} ✨`); } }; diff --git a/packages/playwright-core/src/grid/gridServer.ts b/packages/playwright-core/src/grid/gridServer.ts index 7973269d6a..2bcebc9a57 100644 --- a/packages/playwright-core/src/grid/gridServer.ts +++ b/packages/playwright-core/src/grid/gridServer.ts @@ -285,12 +285,12 @@ export class GridServer { }); } - public async createAgent() { + public async createAgent(): Promise<{ error: any }> { const { initPromise } = this._createAgent(); - await initPromise; + return await initPromise; } - private _createAgent(): {agent: GridAgent, initPromise: Promise<{success: boolean, error: any}>} { + private _createAgent(): {agent: GridAgent, initPromise: Promise<{ error: any }>} { const agent = new GridAgent(this._factory.capacity, this._factory.launchTimeout, this._factory.retireTimeout); this._agents.set(agent.agentId, agent); agent.on('close', () => { @@ -303,12 +303,12 @@ export class GridServer { playwrightVersion: getPlaywrightVersion(), })).then(() => { this._log('created'); - return { success: true, error: undefined }; + return { error: undefined }; }).catch(error => { this._log('failed to launch agent ' + agent.agentId); console.error(error); agent.closeAgent(WSErrors.AGENT_CREATION_FAILED); - return { success: false, error }; + return { error }; }); return { agent, initPromise }; } diff --git a/packages/playwright-test/src/cli.ts b/packages/playwright-test/src/cli.ts index 66bbd221f3..5d286ef4b6 100644 --- a/packages/playwright-test/src/cli.ts +++ b/packages/playwright-test/src/cli.ts @@ -232,7 +232,9 @@ async function launchDockerContainer(): Promise<() => Promise> { const gridServer = new GridServer(dockerFactory, createGuid()); await gridServer.start(); // Start docker container in advance. - await gridServer.createAgent(); + const { error } = await gridServer.createAgent(); + if (error) + throw error; process.env.PW_GRID = gridServer.urlPrefix().substring(0, gridServer.urlPrefix().length - 1); return async () => await gridServer.stop(); } diff --git a/packages/playwright-test/src/index.ts b/packages/playwright-test/src/index.ts index a579acb90f..b952254305 100644 --- a/packages/playwright-test/src/index.ts +++ b/packages/playwright-test/src/index.ts @@ -169,7 +169,7 @@ export const test = _baseTest.extend({ }); }, - _snapshotSuffix: [process.platform, { scope: 'worker' }], + _snapshotSuffix: [process.env.PLAYWRIGHT_DOCKER ? 'docker' : process.platform, { scope: 'worker' }], _setupContextOptionsAndArtifacts: [async ({ _snapshotSuffix, _browserType, _combinedContextOptions, _artifactsDir, trace, screenshot, actionTimeout, navigationTimeout }, use, testInfo) => { testInfo.snapshotSuffix = _snapshotSuffix;