Testing: Unit, Integration, and E2E
We have three layers of tests:
- Unit (for complex logic)
- Seeder (app that serves two purposes, seeding each backend service for local dev and testing APIs by seeding in CI for test purposes. This is kind of an integration test layer.)
- E2E (both for our web app (Expo web export) and our React Native app)
Expectations for Developers
- Create unit tests (Jest or Go tests) for complex pure functions that are mission-critical (such as related to authentication)
- Create Seeder tests for all RPCs
- Update E2E tests when adding major new functionality to the frontend or changing expected behavior of critical functionality