Running 'npm test' giving SyntaxError : polyfills/error-guard.js: Missing semicolon. type ErrorHandler = (error: mixed, isFatal: boolean) => void;

Viewed 462

React Native app when test using jest (npm test) gives following error.

  • Test suite failed to run

    SyntaxError: /node_modules/@react-native/polyfills/error-guard.js: Missing semicolon. (14:4)

    let _inGuard = 0;
    type ErrorHandler = (error: mixed, isFatal: boolean) => void;
        ^
    type Fn<Args, Return> = (...Args) => Return;
    

Package.json

{
  ...
  "scripts": {
    ...
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    ...
    "react": "17.0.2",
    "react-native": "0.67.3",
    ...
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/preset-env": "^7.16.11",
    "@babel/runtime": "^7.12.5",
    "@react-native-community/eslint-config": "^2.0.0",
    "@testing-library/jest-native": "^4.0.4",
    "@testing-library/react-native": "^9.0.0",
    "babel-jest": "^26.6.3",
    "eslint": "7.14.0",
    "jest": "^26.6.3",
    "metro-react-native-babel-preset": "^0.66.2",
    "react-test-renderer": "17.0.2"
  },
  "jest": {
    "preset": "react-native",
    "setupFilesAfterEnv": [
      "@testing-library/jest-native/extend-expect"
    ],
    "setupFiles": [
      "./jest.setup.js"
    ],
    "transformIgnorePatterns": [
      "/node_modules/(?!(@react-native|react-native)/).*/"
    ]
  }
}

babel.config.js

module.exports = {
  presets: ['@babel/preset-env'],
};

jest.setup.js

import mockAsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock';

jest.mock('@react-native-async-storage/async-storage', () => mockAsyncStorage);
1 Answers

I got this error gone by changing babel.config.js file like below

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
};
Related