WARNING: Jet is currently a Proof of Concept, APIs and usage is likely to change by the first release version.
This repo is in development and does not have a full release version yet. v0.1.0 is the latest stable version in it's current form - this works on Android & iOS on React Native ^0.56-59.5 and Detox ^10.0.13.
Jet lets you bring your React Native JS code into NodeJS and test it mock free and native testing code free - ideal for testing React Native modules e2e.
Detox provides all the functionality you'll need to control your testing app, device and it's UI (if you have one) whilst Jet allows JS code execution in the context of your RN app via Node.js - giving you full access to all the Native api's as you would have inside your app.
Latest supported React Native version: ^0.59.5
Latest supported Detox version: ^10.0.13
Your test suites and your React Native code run inside NodeJS - making testing your modules with NodeJS testing frameworks (Mocha only currently, to be replaced with Jest) possible.
Supports debugging your test suites and your React Native JS bundle using the standard NodeJS debugger protocol.
Get full code coverage output for your React Native module's JS API using istanbul/nyc coverage tools.
☕️ Full Detox API support
Supports the full Detox API; reloading or relaunching your app automatically reconnects to your React Native JS bundle.
✨ Full access to React Native bundle context
Jet gives you full access to the JS context of your React Native app inside NodeJS ⚡️.
$ yarn add jet
$ react-native link jet
in your mocha.opts add
You can update your package.json scripts with a task for packager-jet:
"packager-jet": "REACT_DEBUGGER='echo nope' react-native start",
Before starting your tests launch the packager-jet and afterwards start your detox tests.
💛 How can I help?
For now please see the open issues tracking work that needs doing discussions and thoughts on these issues and on Jet will help us mature the project into a useful tool.
😎 Projects using Jet
These projects use Jet to test their modules:
- React Native Firebase: 🔥 A well tested feature rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for over 15 Firebase services.
Submit a PR to add your project here.