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);