diff --git a/index.d.ts b/index.d.ts index 9277d34f15..93e1dcd9d7 100644 --- a/index.d.ts +++ b/index.d.ts @@ -17,8 +17,8 @@ import * as types from './types/types'; export * from './types/types'; -export const webkit: types.BrowserType; -export const chromium: types.BrowserType; -export const firefox: types.BrowserType; +export const webkit: types.BrowserType; +export const chromium: types.BrowserType; +export const firefox: types.BrowserType; export const _electron: types.Electron; export const _android: types.Android; diff --git a/packages/common/index.d.ts b/packages/common/index.d.ts index 227bc8b780..d152013023 100644 --- a/packages/common/index.d.ts +++ b/packages/common/index.d.ts @@ -17,8 +17,8 @@ import * as types from './types/types'; export * from './types/types'; -export const chromium: types.BrowserType; -export const firefox: types.BrowserType; -export const webkit: types.BrowserType; +export const chromium: types.BrowserType; +export const firefox: types.BrowserType; +export const webkit: types.BrowserType; export const _electron: types.Electron; export const _android: types.Android; diff --git a/src/client/browserType.ts b/src/client/browserType.ts index b5d88b84cf..7206a573a0 100644 --- a/src/client/browserType.ts +++ b/src/client/browserType.ts @@ -46,7 +46,7 @@ export interface BrowserServer extends api.BrowserServer { kill(): Promise; } -export class BrowserType extends ChannelOwner implements api.BrowserType { +export class BrowserType extends ChannelOwner implements api.BrowserType { private _timeoutSettings = new TimeoutSettings(); _serverLauncher?: BrowserServerLauncher; diff --git a/tests/config/browserEnv.ts b/tests/config/browserEnv.ts index bbaf11ea2a..7c0640def3 100644 --- a/tests/config/browserEnv.ts +++ b/tests/config/browserEnv.ts @@ -104,7 +104,7 @@ export class PlaywrightEnv implements Env { protected _options: LaunchOptions & TestOptions; protected _browserOptions: LaunchOptions; private _playwright: typeof import('../../index'); - protected _browserType: BrowserType; + protected _browserType: BrowserType; private _coverage: ReturnType | undefined; private _userDataDirs: string[] = []; private _persistentContext: BrowserContext | undefined; @@ -143,7 +143,7 @@ export class PlaywrightEnv implements Env { return dir; } - private async _launchPersistent(options?: Parameters['launchPersistentContext']>[1]) { + private async _launchPersistent(options?: Parameters[1]) { if (this._persistentContext) throw new Error('can only launch one persitent context'); const userDataDir = await this._createUserDataDir(); diff --git a/tests/config/playwrightTest.ts b/tests/config/playwrightTest.ts index d05f319cbc..e13452b433 100644 --- a/tests/config/playwrightTest.ts +++ b/tests/config/playwrightTest.ts @@ -15,17 +15,17 @@ */ import { newTestType } from 'folio'; -import type { Browser, BrowserType, LaunchOptions, BrowserContext, Page } from '../../index'; +import type { BrowserType, LaunchOptions, BrowserContext, Page } from '../../index'; import { CommonTestArgs } from './pageTest'; import type { ServerTestArgs } from './serverTest'; import { RemoteServer, RemoteServerOptions } from './remoteServer'; export { expect } from 'folio'; export type PlaywrightTestArgs = CommonTestArgs & { - browserType: BrowserType; + browserType: BrowserType; browserOptions: LaunchOptions; createUserDataDir: () => Promise; - launchPersistent: (options?: Parameters['launchPersistentContext']>[1]) => Promise<{ context: BrowserContext, page: Page }>; + launchPersistent: (options?: Parameters[1]) => Promise<{ context: BrowserContext, page: Page }>; startRemoteServer: (options?: RemoteServerOptions) => Promise; }; diff --git a/tests/config/remoteServer.ts b/tests/config/remoteServer.ts index 5b84cb3285..9db4ff17d3 100644 --- a/tests/config/remoteServer.ts +++ b/tests/config/remoteServer.ts @@ -29,7 +29,7 @@ export type RemoteServerOptions = { export class RemoteServer { _output: Map; _outputCallback: Map; - _browserType: BrowserType; + _browserType: BrowserType; _child: import('child_process').ChildProcess; _exitPromise: Promise; _exitAndDisconnectPromise: Promise; @@ -37,7 +37,7 @@ export class RemoteServer { _didExit: boolean; _wsEndpoint: string; - async _start(browserType: BrowserType, browserOptions: LaunchOptions, remoteServerOptions: RemoteServerOptions = {}) { + async _start(browserType: BrowserType, browserOptions: LaunchOptions, remoteServerOptions: RemoteServerOptions = {}) { this._output = new Map(); this._outputCallback = new Map(); this._didExit = false; diff --git a/types/types.d.ts b/types/types.d.ts index f8bb26cfd9..a9c6a14516 100644 --- a/types/types.d.ts +++ b/types/types.d.ts @@ -6459,7 +6459,7 @@ export interface ElementHandle extends JSHandle { * ``` * */ -export interface BrowserType { +export interface BrowserType { /** * This methods attaches Playwright to an existing browser instance. diff --git a/utils/generate_types/overrides.d.ts b/utils/generate_types/overrides.d.ts index 53a630c1d4..c9ba48c7f0 100644 --- a/utils/generate_types/overrides.d.ts +++ b/utils/generate_types/overrides.d.ts @@ -140,7 +140,7 @@ export interface ElementHandle extends JSHandle { waitForSelector(selector: string, options: ElementHandleWaitForSelectorOptions): Promise>; } -export interface BrowserType { +export interface BrowserType { } diff --git a/utils/generate_types/test/test.ts b/utils/generate_types/test/test.ts index da3edee9ef..87249cbe6a 100644 --- a/utils/generate_types/test/test.ts +++ b/utils/generate_types/test/test.ts @@ -799,6 +799,14 @@ playwright.chromium.launch().then(async browser => { await browser.close(); })(); +// for backwards compat, BrowserType is templated + +(async () => { + const browserType = {} as playwright.BrowserType; + const browser = await browserType.launch(); + await browser.close(); +}) + // exported types import { LaunchOptions,