diff --git a/packages/jest-environment-puppeteer/README.md b/packages/jest-environment-puppeteer/README.md index 69f51d35..9872c504 100644 --- a/packages/jest-environment-puppeteer/README.md +++ b/packages/jest-environment-puppeteer/README.md @@ -200,6 +200,20 @@ async function getConfig() { module.exports = getConfig(); ``` +## Create custom environment + +It is possible to create a custom environment from the Jest Puppeteer's one. It is not different from creating a custom environment from "jest-environment-node". See [Jest `testEnvironment` documentation](https://jestjs.io/docs/configuration#testenvironment-string) to learn more about it. + +```js +// my-custom-environment +const JestPuppeteerEnvironment = + require("jest-environment-puppeteer").TestEnvironment; + +class CustomEnvironment extends JestPuppeteerEnvironment { + // Implement your own environment +} +``` + ## Inspiration Thanks to Fumihiro Xue for his great [Jest example](https://github.com/xfumihiro/jest-puppeteer-example). diff --git a/packages/jest-environment-puppeteer/rollup.config.mjs b/packages/jest-environment-puppeteer/rollup.config.mjs index 23ae2be7..99018673 100644 --- a/packages/jest-environment-puppeteer/rollup.config.mjs +++ b/packages/jest-environment-puppeteer/rollup.config.mjs @@ -35,7 +35,6 @@ export default [ file: "dist/index.js", format: "cjs", interop: "compat", - exports: "default", }, plugins: [swcPlugin], }), @@ -44,7 +43,7 @@ export default [ output: { file: "dist/index.d.ts", format: "es", - exports: "default", + interop: "compat", }, }), ]; diff --git a/packages/jest-environment-puppeteer/src/env.ts b/packages/jest-environment-puppeteer/src/env.ts index 3d0decd6..a24736ba 100644 --- a/packages/jest-environment-puppeteer/src/env.ts +++ b/packages/jest-environment-puppeteer/src/env.ts @@ -21,19 +21,6 @@ type StrictGlobal = { export type JestPuppeteerGlobal = Required; -declare global { - // @ts-ignore - var browser: Global["browser"]; - // @ts-ignore - var page: Global["page"]; - // @ts-ignore - var context: Global["context"]; - // @ts-ignore - var puppeteerConfig: Global["puppeteerConfig"]; - // @ts-ignore - var jestPuppeteer: Global["jestPuppeteer"]; -} - const testTimeoutSymbol = Symbol.for("TEST_TIMEOUT_SYMBOL"); const handlePageError = (error: Error) => { diff --git a/packages/jest-environment-puppeteer/src/index.ts b/packages/jest-environment-puppeteer/src/index.ts index fd29313e..08acc06e 100644 --- a/packages/jest-environment-puppeteer/src/index.ts +++ b/packages/jest-environment-puppeteer/src/index.ts @@ -1,3 +1,5 @@ +export { PuppeteerEnvironment as TestEnvironment } from "./env"; export { PuppeteerEnvironment as default } from "./env"; + export type { JestPuppeteerGlobal } from "./env"; export type { JestPuppeteerConfig } from "./config"; diff --git a/packages/jest-puppeteer/src/index.ts b/packages/jest-puppeteer/src/index.ts index b51b1aa9..70b21a91 100644 --- a/packages/jest-puppeteer/src/index.ts +++ b/packages/jest-puppeteer/src/index.ts @@ -1,19 +1,14 @@ import type { JestPuppeteerGlobal } from "jest-environment-puppeteer"; declare global { - // @ts-ignore var browser: JestPuppeteerGlobal["browser"]; - // @ts-ignore var page: JestPuppeteerGlobal["page"]; - // @ts-ignore var context: JestPuppeteerGlobal["context"]; - // @ts-ignore var puppeteerConfig: JestPuppeteerGlobal["puppeteerConfig"]; - // @ts-ignore var jestPuppeteer: JestPuppeteerGlobal["jestPuppeteer"]; } -module.exports = { +export = { globalSetup: require.resolve("jest-environment-puppeteer/setup"), globalTeardown: require.resolve("jest-environment-puppeteer/teardown"), testEnvironment: require.resolve("jest-environment-puppeteer"),