From 6452a940ff0ded26921f9c034c2d4e6aea60c66a Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 22 Oct 2020 22:15:11 -0600 Subject: [PATCH 1/2] Pass jsx runtime setting to babel preset in jest config --- .../config/jest/babelTransform.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js index 7feed94c59a..074f9e940b2 100644 --- a/packages/react-scripts/config/jest/babelTransform.js +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -9,8 +9,26 @@ const babelJest = require('babel-jest'); +const hasJsxRuntime = (() => { + if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') { + return false; + } + + try { + require.resolve('react/jsx-runtime'); + return true; + } catch (e) { + return false; + } +})(); + module.exports = babelJest.createTransformer({ - presets: [require.resolve('babel-preset-react-app')], + presets: [ + require.resolve('babel-preset-react-app'), + { + runtime: hasJsxRuntime ? 'automatic' : 'classic', + }, + ], babelrc: false, configFile: false, }); From 5fc389eab73a1a2a05cd8d473af330292f174d5d Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 22 Oct 2020 22:19:14 -0600 Subject: [PATCH 2/2] Fix config --- packages/react-scripts/config/jest/babelTransform.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js index 074f9e940b2..c3848181f1b 100644 --- a/packages/react-scripts/config/jest/babelTransform.js +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -24,10 +24,12 @@ const hasJsxRuntime = (() => { module.exports = babelJest.createTransformer({ presets: [ - require.resolve('babel-preset-react-app'), - { - runtime: hasJsxRuntime ? 'automatic' : 'classic', - }, + [ + require.resolve('babel-preset-react-app'), + { + runtime: hasJsxRuntime ? 'automatic' : 'classic', + }, + ], ], babelrc: false, configFile: false,