From 5b89b890272f56f56a3e41e7b096b7ba2330c3cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Sat, 2 Oct 2021 18:00:31 +0200 Subject: [PATCH 1/7] Add default `exportConditions` for both `jsdom` and `node` environments --- packages/jest-environment-jsdom/src/index.ts | 4 ++++ packages/jest-environment-node/src/index.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/packages/jest-environment-jsdom/src/index.ts b/packages/jest-environment-jsdom/src/index.ts index 006f2357e83e..fb7c26109f3b 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() { + 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..220cde09b543 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() { + return ['node']; + } + getVmContext(): Context | null { return this.context; } From 612f1d802f409bc2903ccc1196d8285b5b7a2790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Sat, 2 Oct 2021 18:21:10 +0200 Subject: [PATCH 2/7] Updated changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad40bf59222f..abe67552ff6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ### Features +- `[jest-environment-jsdom, jest-environment-node]` Add default + `exportConditions` for both `jsdom` and `node` environments + ([#11924](https://github.com/facebook/jest/pull/11924)) + ### Fixes ### Chore & Maintenance From cc708a264263319a9872228294c535a5ad803e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro?= Date: Thu, 27 Jan 2022 00:15:05 +0100 Subject: [PATCH 3/7] Add missing `node-addons` condition to `jest-environment-node` --- packages/jest-environment-node/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-environment-node/src/index.ts b/packages/jest-environment-node/src/index.ts index 220cde09b543..a30b59c6f5c8 100644 --- a/packages/jest-environment-node/src/index.ts +++ b/packages/jest-environment-node/src/index.ts @@ -134,7 +134,7 @@ class NodeEnvironment implements JestEnvironment { } exportConditions() { - return ['node']; + return ['node', 'node-addons']; } getVmContext(): Context | null { From 5ff1892841642e52f8362d1c4bfaa8d4fbb8fa03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Sun, 3 Oct 2021 09:18:45 +0200 Subject: [PATCH 4/7] Use new `jsdom` and `node` environments in tests instead of custom ones --- .../__tests__/browser.test.mjs | 2 +- e2e/resolve-conditions/__tests__/node.test.mjs | 2 +- e2e/resolve-conditions/browser-env.js | 16 ---------------- e2e/resolve-conditions/node-env.js | 16 ---------------- 4 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 e2e/resolve-conditions/browser-env.js delete mode 100644 e2e/resolve-conditions/node-env.js 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/__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/browser-env.js b/e2e/resolve-conditions/browser-env.js deleted file mode 100644 index 86b2dfd19f47..000000000000 --- a/e2e/resolve-conditions/browser-env.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * 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. - */ - -'use strict'; - -const BrowserEnv = require('jest-environment-jsdom'); - -module.exports = class BrowserEnvWithConditions extends BrowserEnv { - exportConditions() { - return ['browser']; - } -}; diff --git a/e2e/resolve-conditions/node-env.js b/e2e/resolve-conditions/node-env.js deleted file mode 100644 index fa756d251ea1..000000000000 --- a/e2e/resolve-conditions/node-env.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * 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. - */ - -'use strict'; - -const NodeEnv = require('jest-environment-node'); - -module.exports = class NodeEnvWithConditions extends NodeEnv { - exportConditions() { - return ['node']; - } -}; From 1ad6d6c0195c807103f5d4f76aa9f636a33cf5fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Fri, 28 Jan 2022 00:39:36 +0100 Subject: [PATCH 5/7] Add test for "fake" `deno` condition --- e2e/resolve-conditions/__tests__/deno.test.mjs | 14 ++++++++++++++ e2e/resolve-conditions/deno-env.js | 16 ++++++++++++++++ .../node_modules/fake-dual-dep/deno.mjs | 10 ++++++++++ .../node_modules/fake-dual-dep/package.json | 1 + 4 files changed, 41 insertions(+) create mode 100644 e2e/resolve-conditions/__tests__/deno.test.mjs create mode 100644 e2e/resolve-conditions/deno-env.js create mode 100644 e2e/resolve-conditions/node_modules/fake-dual-dep/deno.mjs diff --git a/e2e/resolve-conditions/__tests__/deno.test.mjs b/e2e/resolve-conditions/__tests__/deno.test.mjs new file mode 100644 index 000000000000..4039c364a149 --- /dev/null +++ b/e2e/resolve-conditions/__tests__/deno.test.mjs @@ -0,0 +1,14 @@ +/** + * 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. + * + * @jest-environment /deno-env.js + */ + +import {fn} from 'fake-dual-dep'; + +test('returns correct message', () => { + expect(fn()).toEqual('hello from deno'); +}); diff --git a/e2e/resolve-conditions/deno-env.js b/e2e/resolve-conditions/deno-env.js new file mode 100644 index 000000000000..a0e81fbbb436 --- /dev/null +++ b/e2e/resolve-conditions/deno-env.js @@ -0,0 +1,16 @@ +/** + * 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. + */ + +'use strict'; + +const NodeEnv = require('jest-environment-node'); + +module.exports = class DenoEnvWithConditions extends NodeEnv { + exportConditions() { + 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" } From 0f23b628b8641a9965bf1aae7c4c6201a295cd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Fri, 28 Jan 2022 09:15:11 +0100 Subject: [PATCH 6/7] Add missing return type on `exportConditions()` functions to fix linting --- packages/jest-environment-jsdom/src/index.ts | 2 +- packages/jest-environment-node/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/jest-environment-jsdom/src/index.ts b/packages/jest-environment-jsdom/src/index.ts index fb7c26109f3b..7f89cbfe45d0 100644 --- a/packages/jest-environment-jsdom/src/index.ts +++ b/packages/jest-environment-jsdom/src/index.ts @@ -149,7 +149,7 @@ class JSDOMEnvironment implements JestEnvironment { this.fakeTimersModern = null; } - exportConditions() { + exportConditions(): Array { return ['browser']; } diff --git a/packages/jest-environment-node/src/index.ts b/packages/jest-environment-node/src/index.ts index a30b59c6f5c8..218997c17e0a 100644 --- a/packages/jest-environment-node/src/index.ts +++ b/packages/jest-environment-node/src/index.ts @@ -133,7 +133,7 @@ class NodeEnvironment implements JestEnvironment { this.fakeTimersModern = null; } - exportConditions() { + exportConditions(): Array { return ['node', 'node-addons']; } From f3304c48053e9f093217635b6f508cecb6960671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro?= Date: Fri, 28 Jan 2022 10:04:07 +0100 Subject: [PATCH 7/7] Update CHANGELOG.md Co-authored-by: Simen Bekkhus --- CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abe67552ff6e..c69b86db164a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,8 @@ ### Features -- `[jest-environment-jsdom, jest-environment-node]` Add default - `exportConditions` for both `jsdom` and `node` environments - ([#11924](https://github.com/facebook/jest/pull/11924)) +- `[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