UNPKG

webdriverio

Version:

Next-gen browser and mobile automation test framework for Node.js

44 lines • 1.62 kB
import type { local } from 'webdriver'; export type Phase = 'beforeRequestSent' | 'responseStarted'; export type NetworkEvent = local.NetworkBeforeRequestSentParameters | local.NetworkResponseStartedParameters; /** * What one mock wants to do with a blocked request in one phase. */ export interface Decision { /** * `defer` lets the request through now and answers the response later */ kind: 'answer' | 'defer' | 'pass'; /** * a tab or parallel-test mock */ scoped: boolean; /** * registration order, older = smaller */ age: number; /** * the BiDi call of this mock, which takes its once entry and calls `answeredEarly` before an early answer */ run(answeredEarly: () => void): Promise<unknown>; /** * emits `continue`, or keeps an abort for the response, and can log the Firefox warning; sends no BiDi call */ lose(winner: Decision): void; } export interface Candidate { readonly age: number; readonly interceptId: string; observe(phase: Phase, event: NetworkEvent): void; complete(event: local.NetworkResponseCompletedParameters): Promise<void>; decide(phase: Phase, event: NetworkEvent): Decision | undefined | Promise<Decision | undefined>; } export declare function rank(a: Decision, b: Decision): number; export declare function arbiterOf(browser: WebdriverIO.Browser): RequestArbiter; export declare class RequestArbiter { #private; constructor(browser: WebdriverIO.Browser); add(candidate: Candidate): void; remove(candidate: Candidate): void; } //# sourceMappingURL=arbiter.d.ts.map