Test Configuration for AVA + React-Native

I am trying to test my responsive application using AVA and Babel-programmed responsive-native

My config is as follows:

"scripts": { "test": "ava" }, "ava": { "files": [ "src/**/__tests__/*.js" ], "failFast": true, "require": [ "react-native-mock/mock.js", "babel-register" ], "babel": { "presets": [ "react-native" ] } }, "devDependencies": { "ava": "^0.13.0", "babel-preset-react-native": "^1.2.4", "babel-register": "~6.4.3", "react-native-mock": "0.0.6" } 

... and does not work as follows:

 /Users/zoon/Projets/xxxxx/node_modules/babel-register/node_modules/babel-core/lib/transformation/file/index.js:556 throw err; ^ SyntaxError: /Users/zoon/Projets/xxxxx/src/reducers/env.js: Unexpected token (12:8) 10 | case types.RECEIVE_CHANGE_ENV: 11 | return { > 12 | ...state, | ^ 13 | current: Environments[action.env] 14 | }; 15 | default: 

If I export this babel configuration to a .babelrc file and use "babel": "inherit" in my AVA configuration, this fails in another way:

 /Users/zoon/Projets/xxxxx/node_modules/lodash-es/lodash.js:10 export { default as add } from './add'; ^^^^^^ SyntaxError: Unexpected token export 

I cannot figure out how to properly configure this. I tried Mocha, faced the same problems.

+5
source share
1 answer

babel-register by default ignores node_modules . You can set ignore:false to your .babelrc to disable this behavior. You could (probably should) also specify a more restricted regular expression to avoid handling everything in node_modules .

See the docs: https://babeljs.io/docs/usage/require/

Your complete configuration should look something like this:


.babelrc

 { "presets": ["react-native"], "ignore": false } 

package.json

 { "ava": { "babel": "inherit" } } 
+3
source

Source: https://habr.com/ru/post/1245034/


All Articles