Testing & Quality
Overview
The baseline testing, lint, and CI/CD hooks that keep VibeFast reliable.
VibeFast keeps quality high with a lean test suite, shared helpers, and automated CI runs. The emphasis is on user-visible behavior and making it easy to rerun checks locally before pushing.
What you already get
- Frontend user tests: Jest + React Native Testing Library live alongside the components (
apps/native/src/components/.../__tests__). Runpnpm native:test:frontendorpnpm test:frontendfrom the monorepo root. - Convex/backend tests: Vitest powers the backend specs under
packages/backend/convex. Runpnpm native:test:backendorpnpm test:backend(Turbo proxies to the backend workspace). - Lint & type checks:
pnpm run lint(includes ESLint for mobile/web) andpnpm check-typeskeep your TypeScript safe. - Shared helpers: Utilities under
apps/native/src/lib/test-utilswraprender/setup+screen/user-eventso you only test the surface interactions you care about.
Local scripts worth remembering (currently unit testing is setup for app only)
| Purpose | Command | Notes |
|---|---|---|
| Run all frontend tests | pnpm native:test:frontend | Includes Jest, RTL, and UI helpers for Expo/React Native components. |
| Run backend tests | pnpm native:test:backend | Executes Vitest suites inside packages/backend. |
| Run everything | pnpm test | Turbo runs both frontend and backend tests plus watch-friendly tooling. |
| Lint & type check | pnpm lint && pnpm check-types | Catch formatting/type issues before you push. |
Keep tests useful
- Prefer component-level assertions (
getByRole,user.press) instead of implementation details. - Use the shared helpers and mocks from
apps/native/src/lib/test-utilsto wrap providers (Auth, Convex, Theme). - When you add a feature, pair your component tests with a backend Vitest that exercises the corresponding Convex action.
- Run the CI commands locally before pushing to avoid surprises.
Next steps
- Unit Testing Guide – synthesis of how the Jest stack is wired.
- CI/CD Workflows – what GitHub Actions run on every PR/deploy.
Found an issue or bug in the docs?
Help me improve! If you spot any errors, typos, or have suggestions, please let me know.
Reach out on X/Twitter @zafarbuildzz