diff --git a/CHANGELOG.md b/CHANGELOG.md index 88e1df1ab09c..f4944ce14337 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ### Features +- `[jest-environment-jsdom]` [**BREAKING**] Add default `browser` condtion to `exportConditions` for `jsdom` environment ([#11924](https://github.com/facebook/jest/pull/11924)) +- `[jest-environment-node]` [**BREAKING**] Add default `node` and `node-addon` conditions to `exportConditions` for `node` environment ([#11924](https://github.com/facebook/jest/pull/11924)) + ### Fixes ### Chore & Maintenance diff --git a/e2e/resolve-conditions/__tests__/browser.test.mjs b/e2e/resolve-conditions/__tests__/browser.test.mjs index 4edfaa7ffdaa..3314fe26d20a 100644 --- a/e2e/resolve-conditions/__tests__/browser.test.mjs +++ b/e2e/resolve-conditions/__tests__/browser.test.mjs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @jest-environment /browser-env.js + * @jest-environment jest-environment-jsdom */ import {fn} from 'fake-dual-dep'; diff --git a/e2e/resolve-conditions/browser-env.js b/e2e/resolve-conditions/__tests__/deno.test.mjs similarity index 52% rename from e2e/resolve-conditions/browser-env.js rename to e2e/resolve-conditions/__tests__/deno.test.mjs index 86b2dfd19f47..4039c364a149 100644 --- a/e2e/resolve-conditions/browser-env.js +++ b/e2e/resolve-conditions/__tests__/deno.test.mjs @@ -3,14 +3,12 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. + * + * @jest-environment /deno-env.js */ -'use strict'; - -const BrowserEnv = require('jest-environment-jsdom'); +import {fn} from 'fake-dual-dep'; -module.exports = class BrowserEnvWithConditions extends BrowserEnv { - exportConditions() { - return ['browser']; - } -}; +test('returns correct message', () => { + expect(fn()).toEqual('hello from deno'); +}); diff --git a/e2e/resolve-conditions/__tests__/node.test.mjs b/e2e/resolve-conditions/__tests__/node.test.mjs index f71ed5a69e2e..13b5821c037e 100644 --- a/e2e/resolve-conditions/__tests__/node.test.mjs +++ b/e2e/resolve-conditions/__tests__/node.test.mjs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @jest-environment /node-env.js + * @jest-environment jest-environment-node */ import {fn} from 'fake-dual-dep'; diff --git a/e2e/resolve-conditions/node-env.js b/e2e/resolve-conditions/deno-env.js similarity index 78% rename from e2e/resolve-conditions/node-env.js rename to e2e/resolve-conditions/deno-env.js index fa756d251ea1..a0e81fbbb436 100644 --- a/e2e/resolve-conditions/node-env.js +++ b/e2e/resolve-conditions/deno-env.js @@ -9,8 +9,8 @@ const NodeEnv = require('jest-environment-node'); -module.exports = class NodeEnvWithConditions extends NodeEnv { +module.exports = class DenoEnvWithConditions extends NodeEnv { exportConditions() { - return ['node']; + return ['deno']; } }; diff --git a/e2e/resolve-conditions/node_modules/fake-dual-dep/deno.mjs b/e2e/resolve-conditions/node_modules/fake-dual-dep/deno.mjs new file mode 100644 index 000000000000..76ff74cd1dc4 --- /dev/null +++ b/e2e/resolve-conditions/node_modules/fake-dual-dep/deno.mjs @@ -0,0 +1,10 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export function fn() { + return 'hello from deno'; +} diff --git a/e2e/resolve-conditions/node_modules/fake-dual-dep/package.json b/e2e/resolve-conditions/node_modules/fake-dual-dep/package.json index 68c7da0cdd1c..f7274342df9a 100644 --- a/e2e/resolve-conditions/node_modules/fake-dual-dep/package.json +++ b/e2e/resolve-conditions/node_modules/fake-dual-dep/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "exports": { ".": { + "deno": "./deno.mjs", "node": "./node.mjs", "browser": "./browser.mjs" } diff --git a/packages/jest-environment-jsdom/src/index.ts b/packages/jest-environment-jsdom/src/index.ts index 006f2357e83e..7f89cbfe45d0 100644 --- a/packages/jest-environment-jsdom/src/index.ts +++ b/packages/jest-environment-jsdom/src/index.ts @@ -149,6 +149,10 @@ class JSDOMEnvironment implements JestEnvironment { this.fakeTimersModern = null; } + exportConditions(): Array { + return ['browser']; + } + getVmContext(): Context | null { if (this.dom) { return this.dom.getInternalVMContext(); diff --git a/packages/jest-environment-node/src/index.ts b/packages/jest-environment-node/src/index.ts index 27b65b5add37..218997c17e0a 100644 --- a/packages/jest-environment-node/src/index.ts +++ b/packages/jest-environment-node/src/index.ts @@ -133,6 +133,10 @@ class NodeEnvironment implements JestEnvironment { this.fakeTimersModern = null; } + exportConditions(): Array { + return ['node', 'node-addons']; + } + getVmContext(): Context | null { return this.context; }