/jet

✈️ Test your React Native modules e2e; mock-free and native testing code free.

Primary LanguageTypeScriptOtherNOASSERTION


Jet

NPM downloads NPM version License Chat Follow on Twitter


Jet lets you test your React Native Module APIs in JS mock free and native testing code free - ideal for testing React Native modules e2e.

Features:

  • ⏩ Test with JavaScript - write your native module tests in javascript and fully e2e test them.
  • 💯 Coverage - get full code coverage output for your React Native module's JS API with built in coverage support (--coverage).

image


Latest supported React Native version: ^0.74


Quick Setup

yarn add jet@0.9.0-dev.9

These docs are still TODO, for now see example, in particular:

Configuring Jet and targets:

Adding the test UI and your tests:

Configuring coverage instrumentation:

Running tests

jet --target=macos

.jetrc.js

Example:

const proc = require('node:child_process');

module.exports = {
  config: {
    // Global config overrides/defaults...
  },
  targets: {
    // Use any key name to specify a new 'target' (--target=<key>)
    // [key: string]: { ... }
    macos: {
      // --target=macos
      config: {
        // Per target config overrides...
        // These will override in order of:
        // ...cliFlags
        // ...globalConfig
        // ...targetConfig
      },
      /**
       * Use this to run builds, start the application etc.
       */
      async before(config) {
        proc.spawnSync('npx', ['react-native', 'run-macos']);
        return config;
      },
      /**
       * Use this for cleanup & teardown.
       */
      async after(config) {
        console.log('After');
      },
    },
  },
};

💛 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.