UNPKG

1.84 kBTypeScriptView Raw
1// Type definitions for jest-environment-puppeteer 5.0
2// Project: https://github.com/smooth-code/jest-puppeteer/tree/master/packages/jest-environment-puppeteer
3// Definitions by: Ifiok Jr. <https://github.com/ifiokjr>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5// TypeScript Version: 3.8
6
7import NodeEnvironment = require('jest-environment-node');
8import { Browser, Page, BrowserContext } from 'puppeteer';
9import { Context } from 'vm';
10
11interface JestPuppeteer {
12 /**
13 * Reset global.page
14 *
15 * ```ts
16 * beforeEach(async () => {
17 * await jestPuppeteer.resetPage()
18 * })
19 * ```
20 */
21 resetPage(): Promise<void>;
22
23 /**
24 * Reset global.browser
25 *
26 * ```ts
27 * beforeEach(async () => {
28 * await jestPuppeteer.resetBrowser()
29 * })
30 * ```
31 */
32 resetBrowser(): Promise<void>;
33
34 /**
35 * Suspends test execution and gives you opportunity to see what's going on in the browser
36 * - Jest is suspended (no timeout)
37 * - A debugger instruction to Chromium, if Puppeteer has been launched with { devtools: true } it will stop
38 *
39 * ```ts
40 * it('should put test in debug mode', async () => {
41 * await jestPuppeteer.debug()
42 * })
43 * ```
44 */
45 debug(): Promise<void>;
46}
47
48interface Global extends NonNullable<NodeEnvironment['global']> {
49 browser: Browser;
50 context: Context;
51 page: Page;
52 jestPuppeteer: JestPuppeteer;
53}
54
55/** Note: TestEnvironment is sandboxed. Each test suite will trigger setup/teardown in their own TestEnvironment. */
56declare class PuppeteerEnvironment extends NodeEnvironment {
57 global: Global;
58}
59
60declare global {
61 const browser: Browser;
62 const context: BrowserContext;
63 const page: Page;
64 const jestPuppeteer: JestPuppeteer;
65}
66
67export = PuppeteerEnvironment;