forked from microsoft/playwright
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.d.ts
101 lines (84 loc) · 3.33 KB
/
types.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
type ServerResponse = import('http').ServerResponse;
type IncomingMessage = import('http').IncomingMessage;
type Falsy = false|""|0|null|undefined;
interface Expect<T> {
toBe(other: T, message?: string): void;
toBeFalsy(message?: string): void;
toBeTruthy(message?: string): void;
toContain(other: any, message?: string): void;
toEqual(other: T, message?: string): void;
toBeNull(message?: string): void;
toBeInstanceOf(other: Function, message?: string): void;
toBeGreaterThan(other: number, message?: string): void;
toBeGreaterThanOrEqual(other: number, message?: string): void;
toBeLessThan(other: number, message?: string): void;
toBeLessThanOrEqual(other: number, message?: string): void;
toBeCloseTo(other: number, precision: number, message?: string): void;
toBeGolden(path: string): void;
not: Expect<T>;
}
type DescribeFunction = ((name: string, inner: () => void) => void) & {fail(condition: boolean): DescribeFunction};
type ItFunction<STATE> = ((name: string, inner: (state: STATE) => Promise<void>) => void) & {fail(condition: boolean): ItFunction<STATE>; repeat(n: number): ItFunction<STATE>};
type TestRunner<STATE> = {
describe: DescribeFunction;
xdescribe: DescribeFunction;
fdescribe: DescribeFunction;
it: ItFunction<STATE>;
xit: ItFunction<STATE>;
fit: ItFunction<STATE>;
dit: ItFunction<STATE>;
beforeAll, beforeEach, afterAll, afterEach, loadTests;
};
interface TestSetup<STATE> {
testRunner: TestRunner<STATE>;
product: 'Chromium'|'Firefox'|'WebKit';
FFOX: boolean;
WEBKIT: boolean;
CHROMIUM: boolean;
MAC: boolean;
LINUX: boolean;
WIN: boolean;
playwright: import('../src/server/browserType').BrowserType<import('../src/browser').Browser>;
selectors: import('../src/selectors').Selectors;
expect<T>(value: T): Expect<T>;
defaultBrowserOptions: import('../src/server/browserType').LaunchOptions;
playwrightPath;
headless: boolean;
ASSETS_DIR: string;
}
type TestState = {
server: TestServer;
httpsServer: TestServer;
sourceServer: TestServer;
};
type BrowserState = TestState & {
browser: import('../src/browser').Browser;
browserServer: import('../src/server/browserServer').BrowserServer;
};
type PageState = BrowserState & {
context: import('../src/browserContext').BrowserContext;
page: import('../src/page').Page;
};
type ChromiumPageState = PageState & {
browser: import('../src/chromium/crBrowser').CRBrowser;
};
type TestSuite = (setup: TestSetup<TestState>) => void;
type BrowserTestSuite = (setup: TestSetup<BrowserState>) => void;
type PageTestSuite = (setup: TestSetup<PageState>) => void;
type ChromiumTestSuite = (setup: TestSetup<ChromiumPageState>) => void;
interface TestServer {
enableHTTPCache(pathPrefix: string);
setAuth(path: string, username: string, password: string);
enableGzip(path: string);
setCSP(path: string, csp: string);
stop(): Promise<void>;
setRoute(path: string, handler: (message: IncomingMessage, response: ServerResponse) => void);
setRedirect(from: string, to: string);
waitForRequest(path: string): Promise<IncomingMessage>;
reset();
serveFile(request: IncomingMessage, response: ServerResponse, pathName: string);
PORT: number;
PREFIX: string;
CROSS_PROCESS_PREFIX: string;
EMPTY_PAGE: string;
}