@luminati-io/webdriverio8
Version:
Next-gen browser and mobile automation test framework for Node.js
94 lines • 3.75 kB
TypeScript
/// <reference types="node" resolution-mode="require"/>
import type { CDPSession } from 'puppeteer-core/lib/esm/puppeteer/common/Connection.js';
import type { JsonCompatible } from '@wdio/types';
/**
* HTTP request data. (copied from the puppeteer-core package as there is currently
* no way to access these types otherwise)
*/
export type ResourcePriority = 'VeryLow' | 'Low' | 'Medium' | 'High' | 'VeryHigh';
export type MixedContentType = 'blockable' | 'optionally-blockable' | 'none';
export type ReferrerPolicy = 'unsafe-url' | 'no-referrer-when-downgrade' | 'no-referrer' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin';
export interface Request {
/**
* Request URL (without fragment).
*/
url: string;
/**
* Fragment of the requested URL starting with hash, if present.
*/
urlFragment?: string;
/**
* HTTP request method.
*/
method: string;
/**
* HTTP request headers.
*/
headers: Record<string, string>;
/**
* HTTP POST request data.
*/
postData?: string;
/**
* True when the request has POST data. Note that postData might still be omitted when this flag is true when the data is too long.
*/
hasPostData?: boolean;
/**
* The mixed content export type of the request.
*/
mixedContentType?: MixedContentType;
/**
* Priority of the resource request at the time request is sent.
*/
initialPriority: ResourcePriority;
/**
* The referrer policy of the request, as defined in https://www.w3.org/TR/referrer-policy/
*/
referrerPolicy: ReferrerPolicy;
/**
* Whether is loaded via link preload.
*/
isLinkPreload?: boolean;
}
export interface Matches extends Request {
/**
* body response of actual resource
*/
body: string | Buffer | JsonCompatible;
/**
* HTTP response headers.
*/
responseHeaders: Record<string, string>;
/**
* HTTP response status code.
*/
statusCode: number;
}
export type MockOverwriteFunction = (request: Matches, client: CDPSession) => Promise<string | Record<string, any>>;
export type MockOverwrite = string | Record<string, any> | MockOverwriteFunction;
export type MockResponseParams = {
statusCode?: number | ((request: Matches) => number);
headers?: Record<string, string> | ((request: Matches) => Record<string, string>);
/**
* fetch real response before responding with mocked data. Default: true
*/
fetchResponse?: boolean;
};
export type MockFilterOptions = {
method?: string | ((method: string) => boolean);
headers?: Record<string, string> | ((headers: Record<string, string>) => boolean);
requestHeaders?: Record<string, string> | ((headers: Record<string, string>) => boolean);
responseHeaders?: Record<string, string> | ((headers: Record<string, string>) => boolean);
statusCode?: number | ((statusCode: number) => boolean);
postData?: string | ((payload: string | undefined) => boolean);
};
export type ErrorCode = 'Failed' | 'Aborted' | 'TimedOut' | 'AccessDenied' | 'ConnectionClosed' | 'ConnectionReset' | 'ConnectionRefused' | 'ConnectionAborted' | 'ConnectionFailed' | 'NameNotResolved' | 'InternetDisconnected' | 'AddressUnreachable' | 'BlockedByClient' | 'BlockedByResponse';
export type ThrottlePreset = 'offline' | 'GPRS' | 'Regular2G' | 'Good2G' | 'Regular3G' | 'Good3G' | 'Regular4G' | 'DSL' | 'WiFi' | 'online';
export interface CustomThrottle {
offline: boolean;
downloadThroughput: number;
uploadThroughput: number;
latency: number;
}
export type ThrottleOptions = ThrottlePreset | CustomThrottle;
//# sourceMappingURL=types.d.ts.map