mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test: switch temp dir tests to use userDataDir (#13745)
This commit is contained in:
parent
02cb987ddb
commit
39cfa2b6e3
@ -64,7 +64,7 @@ export class BrowserServerLauncherImpl implements BrowserServerLauncher {
|
||||
browserServer.close = () => browser.options.browserProcess.close();
|
||||
browserServer.kill = () => browser.options.browserProcess.kill();
|
||||
(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) => {
|
||||
server.close();
|
||||
browserServer.emit('close', exitCode, signal);
|
||||
|
||||
@ -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;
|
||||
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)
|
||||
await (options as any).__testHookBeforeCreateBrowser();
|
||||
const browserOptions: BrowserOptions = {
|
||||
@ -126,13 +126,14 @@ export abstract class BrowserType extends SdkObject {
|
||||
validateBrowserContextOptions(persistent, browserOptions);
|
||||
copyTestHooks(options, 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.
|
||||
if (persistent && !options.ignoreAllDefaultArgs)
|
||||
await browser._defaultContext!._loadDefaultContext(progress);
|
||||
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 {
|
||||
ignoreDefaultArgs,
|
||||
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];
|
||||
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> {
|
||||
|
||||
@ -33,7 +33,7 @@ async function start() {
|
||||
console.log(`(exitCode=>${exitCode})`);
|
||||
console.log(`(signal=>${signal})`);
|
||||
});
|
||||
console.log(`(tempDir=>${browserServer._artifactsDirForTest})`);
|
||||
console.log(`(tempDir=>${browserServer._userDataDirForTest})`);
|
||||
console.log(`(pid=>${browserServer.process().pid})`);
|
||||
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user