From b5aa6c1088b0fe1fc168e3810dacba7f931a935e Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Thu, 18 Oct 2018 10:29:05 +0200 Subject: [PATCH 1/2] feat: export babel-preset-jest as a function --- CHANGELOG.md | 1 + e2e/coverage-transform-instrumented/Preprocessor.js | 2 +- packages/babel-jest/src/index.js | 4 ++-- packages/babel-preset-jest/index.js | 9 ++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5270873cbc59..6ff74954c9d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ - `[jest-runtime]` Fix missing coverage when using negative glob pattern in `testMatch` ([#7170](https://github.com/facebook/jest/pull/7170)) - `[*]` Ensure `maxWorkers` is at least 1 (was 0 in some cases where there was only 1 CPU) ([#7182](https://github.com/facebook/jest/pull/7182)) - `[jest-runtime]` Fix transform cache invalidation when requiring a test file from multiple projects ([#7186](https://github.com/facebook/jest/pull/7186)) +- `[babel-preset-jest]` [**BREAKING**] Export a function instead of an object for Babel 7 compatibility ### Chore & Maintenance diff --git a/e2e/coverage-transform-instrumented/Preprocessor.js b/e2e/coverage-transform-instrumented/Preprocessor.js index a708eab7bc3d..830a9494d364 100644 --- a/e2e/coverage-transform-instrumented/Preprocessor.js +++ b/e2e/coverage-transform-instrumented/Preprocessor.js @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -const jestPreset = require('babel-preset-jest'); const {transform: babelTransform} = require('babel-core'); const {default: babelIstanbulPlugin} = require('babel-plugin-istanbul'); +const jestPreset = require.resolve('babel-preset-jest'); const options = { presets: ['env', jestPreset], diff --git a/packages/babel-jest/src/index.js b/packages/babel-jest/src/index.js index 5484019e2f4f..0fc77b7c2733 100644 --- a/packages/babel-jest/src/index.js +++ b/packages/babel-jest/src/index.js @@ -18,7 +18,6 @@ import type { import crypto from 'crypto'; import fs from 'fs'; import path from 'path'; -import jestPreset from 'babel-preset-jest'; import {transform as babelTransform, util as babelUtil} from 'babel-core'; import babelIstanbulPlugin from 'babel-plugin-istanbul'; @@ -28,6 +27,7 @@ const BABEL_CONFIG_JS_FILENAME = 'babel.config.js'; const BABEL_CONFIG_KEY = 'babel'; const PACKAGE_JSON = 'package.json'; const THIS_FILE = fs.readFileSync(__filename); +const jestPresetPath = require.resolve('babel-preset-jest'); const createTransformer = (options: any): Transformer => { const cache = Object.create(null); @@ -81,7 +81,7 @@ const createTransformer = (options: any): Transformer => { options = Object.assign({}, options, { compact: false, plugins: (options && options.plugins) || [], - presets: ((options && options.presets) || []).concat([jestPreset]), + presets: ((options && options.presets) || []).concat(jestPresetPath), sourceMaps: 'both', }); delete options.cacheDirectory; diff --git a/packages/babel-preset-jest/index.js b/packages/babel-preset-jest/index.js index c5f6a3d60bc8..cdcf121d6062 100644 --- a/packages/babel-preset-jest/index.js +++ b/packages/babel-preset-jest/index.js @@ -5,10 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -module.exports = { +module.exports = () => ({ plugins: [ - // Cannot be `import` as this file is not compiled - require('babel-plugin-jest-hoist'), - require('babel-plugin-syntax-object-rest-spread'), + require.resolve('babel-plugin-jest-hoist'), + require.resolve('babel-plugin-syntax-object-rest-spread'), ], -}; +}); From 01157345304563677a900920181e3de1d186dbc9 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Thu, 18 Oct 2018 10:40:34 +0200 Subject: [PATCH 2/2] link to PR --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ff74954c9d6..d7aa88032d88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,7 +45,7 @@ - `[jest-runtime]` Fix missing coverage when using negative glob pattern in `testMatch` ([#7170](https://github.com/facebook/jest/pull/7170)) - `[*]` Ensure `maxWorkers` is at least 1 (was 0 in some cases where there was only 1 CPU) ([#7182](https://github.com/facebook/jest/pull/7182)) - `[jest-runtime]` Fix transform cache invalidation when requiring a test file from multiple projects ([#7186](https://github.com/facebook/jest/pull/7186)) -- `[babel-preset-jest]` [**BREAKING**] Export a function instead of an object for Babel 7 compatibility +- `[babel-preset-jest]` [**BREAKING**] Export a function instead of an object for Babel 7 compatibility ([#7203](https://github.com/facebook/jest/pull/7203)) ### Chore & Maintenance