test: switch temp dir tests to use userDataDir (#13745)

This commit is contained in:
Dmitry Gozman 2022-04-26 09:32:58 +01:00 committed by GitHub
parent 02cb987ddb
commit 39cfa2b6e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 6 deletions

View File

@ -64,7 +64,7 @@ export class BrowserServerLauncherImpl implements BrowserServerLauncher {
browserServer.close = () => browser.options.browserProcess.close(); browserServer.close = () => browser.options.browserProcess.close();
browserServer.kill = () => browser.options.browserProcess.kill(); browserServer.kill = () => browser.options.browserProcess.kill();
(browserServer as any)._disconnectForTest = () => server.close(); (browserServer as any)._disconnectForTest = () => server.close();
(browserServer as any)._artifactsDirForTest = browser.options.artifactsDir; (browserServer as any)._userDataDirForTest = (browser as any)._userDataDirForTest;
browser.options.browserProcess.onclose = async (exitCode, signal) => { browser.options.browserProcess.onclose = async (exitCode, signal) => {
server.close(); server.close();
browserServer.emit('close', exitCode, signal); browserServer.emit('close', exitCode, signal);

View File

@ -98,10 +98,10 @@ export abstract class BrowserType extends SdkObject {
} }
} }
async _innerLaunch(progress: Progress, options: types.LaunchOptions, persistent: types.BrowserContextOptions | undefined, protocolLogger: types.ProtocolLogger, userDataDir?: string): Promise<Browser> { async _innerLaunch(progress: Progress, options: types.LaunchOptions, persistent: types.BrowserContextOptions | undefined, protocolLogger: types.ProtocolLogger, maybeUserDataDir?: string): Promise<Browser> {
options.proxy = options.proxy ? normalizeProxySettings(options.proxy) : undefined; options.proxy = options.proxy ? normalizeProxySettings(options.proxy) : undefined;
const browserLogsCollector = new RecentLogsCollector(); const browserLogsCollector = new RecentLogsCollector();
const { browserProcess, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, userDataDir); const { browserProcess, userDataDir, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, maybeUserDataDir);
if ((options as any).__testHookBeforeCreateBrowser) if ((options as any).__testHookBeforeCreateBrowser)
await (options as any).__testHookBeforeCreateBrowser(); await (options as any).__testHookBeforeCreateBrowser();
const browserOptions: BrowserOptions = { const browserOptions: BrowserOptions = {
@ -126,13 +126,14 @@ export abstract class BrowserType extends SdkObject {
validateBrowserContextOptions(persistent, browserOptions); validateBrowserContextOptions(persistent, browserOptions);
copyTestHooks(options, browserOptions); copyTestHooks(options, browserOptions);
const browser = await this._connectToTransport(transport, browserOptions); const browser = await this._connectToTransport(transport, browserOptions);
(browser as any)._userDataDirForTest = userDataDir;
// We assume no control when using custom arguments, and do not prepare the default context in that case. // We assume no control when using custom arguments, and do not prepare the default context in that case.
if (persistent && !options.ignoreAllDefaultArgs) if (persistent && !options.ignoreAllDefaultArgs)
await browser._defaultContext!._loadDefaultContext(progress); await browser._defaultContext!._loadDefaultContext(progress);
return browser; return browser;
} }
private async _launchProcess(progress: Progress, options: types.LaunchOptions, isPersistent: boolean, browserLogsCollector: RecentLogsCollector, userDataDir?: string): Promise<{ browserProcess: BrowserProcess, artifactsDir: string, transport: ConnectionTransport }> { private async _launchProcess(progress: Progress, options: types.LaunchOptions, isPersistent: boolean, browserLogsCollector: RecentLogsCollector, userDataDir?: string): Promise<{ browserProcess: BrowserProcess, artifactsDir: string, userDataDir: string, transport: ConnectionTransport }> {
const { const {
ignoreDefaultArgs, ignoreDefaultArgs,
ignoreAllDefaultArgs, ignoreAllDefaultArgs,
@ -251,7 +252,7 @@ export abstract class BrowserType extends SdkObject {
const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream]; const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream];
transport = new PipeTransport(stdio[3], stdio[4]); transport = new PipeTransport(stdio[3], stdio[4]);
} }
return { browserProcess, artifactsDir, transport }; return { browserProcess, artifactsDir, userDataDir, transport };
} }
async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number }, timeout?: number): Promise<Browser> { async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number }, timeout?: number): Promise<Browser> {

View File

@ -33,7 +33,7 @@ async function start() {
console.log(`(exitCode=>${exitCode})`); console.log(`(exitCode=>${exitCode})`);
console.log(`(signal=>${signal})`); console.log(`(signal=>${signal})`);
}); });
console.log(`(tempDir=>${browserServer._artifactsDirForTest})`); console.log(`(tempDir=>${browserServer._userDataDirForTest})`);
console.log(`(pid=>${browserServer.process().pid})`); console.log(`(pid=>${browserServer.process().pid})`);
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`); console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
} }