From 68f94dd8b4310301a213f618d077433ce58a0fbf Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 13 Aug 2019 11:28:29 -0700 Subject: [PATCH] Use temp user data dir --- test/smoke/src/vscode/puppeteerDriver.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/test/smoke/src/vscode/puppeteerDriver.ts b/test/smoke/src/vscode/puppeteerDriver.ts index fe305d7394f..99ea0443e99 100644 --- a/test/smoke/src/vscode/puppeteerDriver.ts +++ b/test/smoke/src/vscode/puppeteerDriver.ts @@ -6,6 +6,9 @@ import * as puppeteer from 'puppeteer'; import { ChildProcess, spawn } from 'child_process'; import { join } from 'path'; +import { tmpdir } from 'os'; +import { mkdir } from 'fs'; +import { promisify } from 'util'; const width = 1200; const height = 800; @@ -184,11 +187,18 @@ let endpoint: string | undefined; export async function launch(_args): Promise { args = _args; - console.log('launch args', args); - // TODO: --web-user-data-dir (tmpdir) - server = spawn(join(args[0], '/resources/server/web.sh'), ['--driver', 'web']); - endpoint = await new Promise(r => { + // TODO: Don't open up the system browser + const webUserDataDir = join(tmpdir(), `smoketest-${Math.random() * 10000000000}`); + await promisify(mkdir)(webUserDataDir); + server = spawn(join(args[0], 'resources/server/web.sh'), ['--driver', 'web', '--web-user-data-dir', webUserDataDir]); + server.stderr.on('data', e => console.log('Server error: ' + e)); + endpoint = await waitForEndpoint(); + await timeout(2000); +} + +function waitForEndpoint(): Promise { + return new Promise(r => { server.stdout.on('data', d => { const matches = d.toString('ascii').match(/Web UI available at (.+)/); if (matches !== null) {