Node.js mock for react-native-config
A mock for react-native-config, a module which offers an elegant way to inject environment-specific variables to react-native.
As react-native-config
contains native codes, it cannot be run in Nodejs environment.
We provide a way to mock the module.
via NPM:
npm install --save-dev react-native-config-node
via Yarn:
yarn add -D react-native-config-node
Create a compiler file using babel-register
.
test/lib/babel-register.js
module.exports = require('babel-register')({
plugins: ['react-native-config-node/transform']
})
Use it via command.
mocha --compilers js:./test/lib/babel-register test/spec/*.js
Alternatively, you can set mocha.opts.
--compilers js:./test/lib/babel-register
You can pass specific environment via NODE_ENV
variable.
NODE_ENV=staging mocha --compilers js:./test/lib/babel-register test/spec/*.js
.env.staging
will be loaded.
Add the following plugin to your babel.config.js
or .babelrc
{
"presets": ["module:metro-react-native-babel-preset"],
"env": {
"test": {
"plugins": ["react-native-config-node/transform"]
}
}
}
You can pass specific environment via NODE_ENV
variable.
NODE_ENV=staging jest
.env.staging
will be loaded.
react-native-config-node/transform
is a babel-plugin transforming the following code
import Config from 'react-native-config'
into
import Config from 'react-native-config-node'
react-native-config-node
offers the same API as react-native-config
using dotenv.
MIT