Jest: 'loose' mode configuration must be the same for @babel modules

Viewed 18

Jest test failed on React Native 0.70.1 project with its boilerplate code (after react-native init, only show page of React Native logo). The purpose of the test is to test the jest env setup with React Native 0.70.1/Jest 29. Here is the App.test.js:

/**
 * @format
 */

    import 'react-native';
    import React from 'react';
    import App from '../App';
    
    // Note: test renderer must be required after react-native.
    import renderer from 'react-test-renderer';
    
    it('renders correctly', () => {
      renderer.create(<App />);
    });

yarn jest error is:

Error: /Users/macair/Documents/code/js/xyz_app6/node_modules/jest-runner/build/index.js: 'loose' mode configuration must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled).
    at enableFeature (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/features.js:51:13)
    at PluginPass.pre (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/helper-create-class-features-plugin/lib/index.js:82:35)
    at transformFile (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:97:27)
    at transformFile.next (<anonymous>)
    at run (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transformation/index.js:35:12)
    at run.next (<anonymous>)
    at transform (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:29:41)
    at transform.next (<anonymous>)
    at evaluateSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:251:28)
    at sync (/Users/macair/Documents/code/js/xyz_app6/node_modules/gensync/index.js:89:14)
    at stopHiding - secret - don't use this - v1 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:50:12)
    at transformSync (/Users/macair/Documents/code/js/xyz_app6/node_modules/@babel/core/lib/transform.js:56:76)
    at Object.process (/Users/macair/Documents/code/js/xyz_app6/node_modules/babel-jest/build/index.js:309:57)
    at ScriptTransformer.transformSource (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:615:31)
    at revertHook.exts (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:863:18)
    at Module._compile (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:130:29)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Object.newLoader (/Users/macair/Documents/code/js/xyz_app6/node_modules/pirates/lib/index.js:141:7)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Module.require (node:internal/modules/cjs/loader:1022:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at requireOrImportModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-util/build/requireOrImportModule.js:53:28)
    at ScriptTransformer.requireAndTranspileModule (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/transform/build/ScriptTransformer.js:887:66)
    at /Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:269:46
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Promise.all (index 0)
    at async TestScheduler.scheduleTests (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/TestScheduler.js:261:7)
    at async runJest (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/runJest.js:405:19)
    at async _run10000 (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:386:7)
    at async runCLI (/Users/macair/Documents/code/js/xyz_app6/node_modules/@jest/core/build/cli/index.js:237:3)
    at async Object.run (/Users/macair/Documents/code/js/xyz_app6/node_modules/jest-cli/build/cli/index.js:155:37)
error Command failed with exit code 1.

However, both @babel/plugin-proposal-class-properties and @babel/plugin-proposal-private-property-in-object are not present in the app. Here is the babel.config.js:

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  "plugins": ["@babel/plugin-proposal-private-methods"]  //added for jest
};

Here is the portion of package.json:

  "devDependencies": {
    "@babel/core": "^7.19.1",
    "@babel/plugin-proposal-private-methods": "^7.18.6",
    "@babel/plugin-transform-flow-strip-types": "^7.19.0",
    "@babel/runtime": "^7.19.0",
    "@react-native-community/eslint-config": "^3.1.0",
    "@testing-library/react-native": "^11.1.0",
    "babel-jest": "^29.0.3",
    "eslint": "^8.23.1",
    "jest": "^29.0.3",
    "metro-react-native-babel-preset": "^0.72.1",
    "react-test-renderer": "18.1.0"
  },
  "jest": {
    "preset": "react-native",
    "cacheDirectory": "./cache",
    "setupFiles": [
      "<rootDir>/jest.setup.js"
    ],
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ],
    "transform": {
      "\\.[jt]sx?$": "babel-jest"
    },
    "transformIgnorePatterns": []
    
  }

What is missing in the jest config?

0 Answers
Related