diff --git a/packages/jest-environment-puppeteer/README.md b/packages/jest-environment-puppeteer/README.md index e3023347..9ea5b500 100644 --- a/packages/jest-environment-puppeteer/README.md +++ b/packages/jest-environment-puppeteer/README.md @@ -65,6 +65,7 @@ it('should fill an input', async () => { You can specify a `jest-puppeteer.config.js` at the root of the project or define a custom path using `JEST_PUPPETEER_CONFIG` environment variable. * `launch` <[object]> [All Puppeteer launch options](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions) can be specified in config. Since it is JavaScript, you can use all stuff you need, including environment. +* `exitOnPageError` <[boolean]> Exits page on any global error message thrown. Defaults to `true`. * `server` <[Object]> Server options * `command` <[string]> Command to start server * `port` <[number]> If specified, it will wait port to be listened diff --git a/packages/jest-environment-puppeteer/src/PuppeteerEnvironment.js b/packages/jest-environment-puppeteer/src/PuppeteerEnvironment.js index 93a19cf5..c8cdaacb 100644 --- a/packages/jest-environment-puppeteer/src/PuppeteerEnvironment.js +++ b/packages/jest-environment-puppeteer/src/PuppeteerEnvironment.js @@ -21,7 +21,9 @@ class PuppeteerEnvironment extends NodeEnvironment { browserWSEndpoint: wsEndpoint, }) this.global.page = await this.global.browser.newPage() - this.global.page.addListener('pageerror', handleError) + if (config && config.exitOnPageError) { + this.global.page.addListener('pageerror', handleError) + } } async teardown() { diff --git a/packages/jest-environment-puppeteer/src/readConfig.js b/packages/jest-environment-puppeteer/src/readConfig.js index 7eefe369..659a9cba 100644 --- a/packages/jest-environment-puppeteer/src/readConfig.js +++ b/packages/jest-environment-puppeteer/src/readConfig.js @@ -8,11 +8,13 @@ const exists = promisify(fs.exists) const DEFAULT_CONFIG = { launch: {}, + exitOnPageError: true } const DEFAULT_CONFIG_CI = { launch: { args: ['--no-sandbox', '--disable-setuid-sandbox'], }, + exitOnPageError: true } async function readConfig() {