{"id":13469717,"url":"https://github.com/invertase/jet","last_synced_at":"2025-04-04T14:10:10.636Z","repository":{"id":34833663,"uuid":"143665988","full_name":"invertase/jet","owner":"invertase","description":"✈️ Test your React Native modules e2e; mock-free and native testing code free.","archived":false,"fork":false,"pushed_at":"2025-02-14T18:29:46.000Z","size":4607,"stargazers_count":96,"open_issues_count":5,"forks_count":10,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-30T22:51:33.885Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://invertase.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/invertase.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-06T02:24:05.000Z","updated_at":"2025-02-04T22:41:25.000Z","dependencies_parsed_at":"2025-02-15T11:13:03.811Z","dependency_job_id":"49e0788b-de82-42b5-b8da-f80f5694760a","html_url":"https://github.com/invertase/jet","commit_stats":{"total_commits":167,"total_committers":4,"mean_commits":41.75,"dds":"0.16167664670658688","last_synced_commit":"0f04760bac79e28bbc11c7c5002259356ff1bb38"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invertase%2Fjet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invertase%2Fjet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invertase%2Fjet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invertase%2Fjet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/invertase","download_url":"https://codeload.github.com/invertase/jet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190255,"owners_count":20898702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T15:01:52.430Z","updated_at":"2025-04-04T14:10:10.613Z","avatar_url":"https://github.com/invertase.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://invertase.io\"\u003e\n    \u003cimg height=\"180\" src=\"https://static.invertase.io/assets/jet.png\"\u003e\u003cbr/\u003e\n  \u003c/a\u003e\n  \u003ch2 align=\"center\"\u003eJet\u003c/h2\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/jet\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/jet.svg?style=flat-square\" alt=\"NPM downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/jet\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/jet.svg?style=flat-square\" alt=\"NPM version\"\u003e\u003c/a\u003e\n  \u003ca href=\"/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/jet.svg?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/C9aK28N\"\u003e\u003cimg src=\"https://img.shields.io/discord/295953187817521152.svg?logo=discord\u0026style=flat-square\u0026colorA=7289da\u0026label=discord\" alt=\"Chat\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://twitter.com/invertaseio\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/invertaseio.svg?style=social\u0026label=Follow\" alt=\"Follow on Twitter\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nJet lets you test your React Native Module APIs in JS mock free and native testing code free - ideal for testing React Native modules e2e.\n\n**Features:**\n\n- ⏩ Test with JavaScript - write your native module tests in javascript and fully e2e test them.\n- 💯 Coverage - get full code coverage output for your React Native module's JS API with built in coverage support (`--coverage`).\n\n\n![image](https://github.com/invertase/jet/assets/5347038/d0ca2c5b-7eee-48bb-94b5-21881455142d)\n\n---\n\n\u003e Latest supported React Native version: **^0.76**\n\n---\n\n## Quick Setup\n\nAdd the current version of jet as a development dependency using your package manager of choice, for example yarn:\n\n```sh\nyarn add --dev jet\n```\n\nThese docs are still TODO, for now see [example](./example), in particular:\n\nConfiguring Jet and targets:\n\n- [.jetrc.js](./example/.jetrc.js)\n\nAdding the test UI and your tests:\n\n- [App.tsx](./example/App.tsx)\n\nConfiguring coverage instrumentation:\n\n- [babel.config.js](./example/babel.config.js)\n- [nyc.config.js](./example/nyc.config.js)\n\n### Running tests\n\n```sh\njet --target=macos\n```\n\n### `.jetrc.js`\n\nExample:\n\n```js\nconst proc = require('node:child_process');\n\nmodule.exports = {\n  config: {\n    // Global config overrides/defaults...\n  },\n  targets: {\n    // Use any key name to specify a new 'target' (--target=\u003ckey\u003e)\n    // [key: string]: { ... }\n    macos: {\n      // --target=macos\n      config: {\n        // Per target config overrides...\n        // These will override in order of:\n        // ...cliFlags\n        // ...globalConfig\n        // ...targetConfig\n      },\n      /**\n       * Use this to run builds, start the application etc.\n       */\n      async before(config) {\n        proc.spawnSync('npx', ['react-native', 'run-macos']);\n        return config;\n      },\n      /**\n       * Use this for cleanup \u0026 teardown.\n       */\n      async after(config) {\n        console.log('After');\n      },\n    },\n  },\n};\n```\n\n## 💛 How can I help?\n\nFor 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.\n\n---\n\n## 😎 Projects using Jet\n\nThese projects use Jet to test their modules:\n\n- [React Native Firebase](https://github.com/invertase/react-native-firebase): 🔥 A well tested feature rich modular Firebase implementation for React Native. Supports both iOS \u0026 Android platforms for over 15 Firebase services.\n\nSubmit a PR to add your project here.\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvertase%2Fjet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvertase%2Fjet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvertase%2Fjet/lists"}