vitest-environment-puppeteer
Version:
Puppeteer environment for Vitest.
60 lines (56 loc) • 1.76 kB
TypeScript
import { ConnectOptions, PuppeteerLaunchOptions, Browser, Page, BrowserContext } from 'puppeteer';
import { Config } from 'vitest-dev-server';
import { Environment } from 'vitest/environments';
interface VitestPuppeteerConfig {
/**
* Puppeteer connect options.
* @see https://pptr.dev/api/puppeteer.connectoptions
*/
connect?: ConnectOptions;
/**
* Puppeteer launch options.
* @see https://pptr.dev/api/puppeteer.launchoptions
*/
launch?: PuppeteerLaunchOptions;
/**
* Server config for `vitest-dev-server`.
* @see https://www.npmjs.com/package/vitest-dev-server
*/
server?: Config | Config[];
/**
* Allow to run one browser per worker.
* @default false
*/
browserPerWorker?: boolean;
/**
* Browser context to use.
* @default "default"
*/
browserContext?: "default" | "incognito";
/**
* Exit on page error.
* @default true
*/
exitOnPageError?: boolean;
/**
* Use `runBeforeUnload` in `page.close`.
* @see https://pptr.dev/api/puppeteer.page.close
* @default false
*/
runBeforeUnloadOnClose?: boolean;
}
type VitestPuppeteer = {
debug: () => Promise<void>;
resetPage: () => Promise<void>;
resetBrowser: () => Promise<void>;
};
type StrictGlobal = {
browser?: Browser | undefined;
page?: Page | undefined;
context?: BrowserContext | undefined;
puppeteerConfig: VitestPuppeteerConfig;
vitestPuppeteer: VitestPuppeteer;
};
type VitestPuppeteerGlobal = Required<StrictGlobal>;
declare const PuppeteerEnvironment: Environment;
export { PuppeteerEnvironment as TestEnvironment, type VitestPuppeteerConfig, type VitestPuppeteerGlobal, PuppeteerEnvironment as default };