import type {
BrowserContext,
BrowserContextOptions,
Frame,
FrameLocator,
LaunchOptions,
Page,
CDPSession
} from 'playwright'
import { Protocol } from 'playwright-core/types/protocol'
import '../matchers.js'
declare module 'vitest/node' {
interface BrowserProviderOptions {
launch?: LaunchOptions
context?: Omit<
BrowserContextOptions,
'ignoreHTTPSErrors' | 'serviceWorkers'
>
}
export interface BrowserCommandContext {
page: Page
frame(): Promise
iframe: FrameLocator
context: BrowserContext
}
}
type PWHoverOptions = Parameters[1]
type PWClickOptions = Parameters[1]
type PWDoubleClickOptions = Parameters[1]
type PWFillOptions = Parameters[2]
type PWScreenshotOptions = Parameters[0]
type PWSelectOptions = Parameters[2]
type PWDragAndDropOptions = Parameters[2]
declare module '@vitest/browser/context' {
export interface UserEventHoverOptions extends PWHoverOptions {}
export interface UserEventClickOptions extends PWClickOptions {}
export interface UserEventDoubleClickOptions extends PWDoubleClickOptions {}
export interface UserEventTripleClickOptions extends PWClickOptions {}
export interface UserEventFillOptions extends PWFillOptions {}
export interface UserEventSelectOptions extends PWSelectOptions {}
export interface UserEventDragAndDropOptions extends PWDragAndDropOptions {}
export interface ScreenshotOptions extends PWScreenshotOptions {}
export interface CDPSession {
send(
method: T,
params?: Protocol.CommandParameters[T]
): Promise
on(
event: T,
listener: (payload: Protocol.Events[T]) => void
): this;
once(
event: T,
listener: (payload: Protocol.Events[T]) => void
): this;
off(
event: T,
listener: (payload: Protocol.Events[T]) => void
): this;
}
}