UNPKG

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