{"id":15553115,"url":"https://github.com/bahmutov/reactnativetodo","last_synced_at":"2025-09-28T20:31:12.679Z","repository":{"id":37104931,"uuid":"378498471","full_name":"bahmutov/ReactNativeTodo","owner":"bahmutov","description":"Example testing ReactNative Todo app using Cypress","archived":false,"fork":false,"pushed_at":"2024-05-22T03:34:43.000Z","size":6442,"stargazers_count":6,"open_issues_count":11,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-22T04:32:46.212Z","etag":null,"topics":["cypress-react-native-example"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bahmutov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-06-19T20:22:22.000Z","updated_at":"2024-05-30T05:54:15.845Z","dependencies_parsed_at":"2024-01-31T05:27:54.204Z","dependency_job_id":"d9ade073-45fb-4557-b16a-c550712b3e88","html_url":"https://github.com/bahmutov/ReactNativeTodo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmutov%2FReactNativeTodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmutov%2FReactNativeTodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmutov%2FReactNativeTodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmutov%2FReactNativeTodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bahmutov","download_url":"https://codeload.github.com/bahmutov/ReactNativeTodo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234558807,"owners_count":18852283,"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":["cypress-react-native-example"],"created_at":"2024-10-02T14:24:33.899Z","updated_at":"2025-09-28T20:31:10.491Z","avatar_url":"https://github.com/bahmutov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReactNativeTodo\n[![ci status][ci image]][ci url] [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/bahmutov/ReactNativeTodo) ![cypress version](https://img.shields.io/badge/cypress-9.6.1-brightgreen) [![renovate-app badge][renovate-badge]][renovate-app]\n\u003e Example testing ReactNative Todo app using Cypress\n\nRead [Testing React Native Todo Application Using Cypress](https://glebbahmutov.com/blog/testing-rn-todo-app/)\n\n![A single test for the entire app](./images/todo-test.gif)\n\nFor general advice on testing the ReactNative apps running using Expo using [Cypress.io](https://www.cypress.io) test runner, read [The Complete Guide to Testing React Native App Using Cypress](https://glebbahmutov.com/blog/testing-react-native-app-using-cypress/).\n\n## Add Expo\n\nFirst, let's add [Expo](https://docs.expo.io/guides/running-in-the-browser/) to this project to be able to work with the RN app in the browser. Follow the example in [bahmutov/react-native-to-expo](https://github.com/bahmutov/react-native-to-expo).\n\n```text\n# match the React DOM version to the React version\n$ npm i -D expo expo-cli react-native-web react-dom@17.0.1 babel-preset-expo\n+ react-dom@17.0.1\n+ react-native-web@0.17.0\n+ expo-cli@4.5.2\n+ expo@41.0.1\n+ babel-preset-expo@8.3.0\n```\n\nThen I started using Expo icons and fonts to make sure the app looks in the browser the same as on iOS.\n\n## The server\n\nThe TODO API server is in the folder [server](./server). To start it at port 3000 run `npm run start:server`.\n\n## Cypress tests\n\nSee the tests in [cypress/integration](./cypress/integration) folder.\n\nTo start the server, the Expo app, and Cypress use:\n\n```text\n$ npm run dev\n```\n\n## Visual tests\n\nUsing Percy.io, see [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/bahmutov/ReactNativeTodo)\n\n## Attribution\n\nThis code was originally copied from [stassop/ReactNativeTodo](https://github.com/stassop/ReactNativeTodo). The original unit and integration tests were described in the blog post [Quick Guide to React Native Testing](https://stassop.medium.com/quick-guide-to-react-native-testing-a5a830223c9e) by [Stanislav Sopov](https://github.com/stassop).\n\n[ci image]: https://github.com/bahmutov/ReactNativeTodo/workflows/e2e/badge.svg?branch=main\n[ci url]: https://github.com/bahmutov/ReactNativeTodo/actions\n[renovate-badge]: https://img.shields.io/badge/renovate-app-blue.svg\n[renovate-app]: https://renovateapp.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahmutov%2Freactnativetodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbahmutov%2Freactnativetodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahmutov%2Freactnativetodo/lists"}