VibeFast
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__). Run pnpm native:test:frontend or pnpm test:frontend from the monorepo root.
  • Convex/backend tests: Vitest powers the backend specs under packages/backend/convex. Run pnpm native:test:backend or pnpm test:backend (Turbo proxies to the backend workspace).
  • Lint & type checks: pnpm run lint (includes ESLint for mobile/web) and pnpm check-types keep your TypeScript safe.
  • Shared helpers: Utilities under apps/native/src/lib/test-utils wrap render/setup + screen/user-event so you only test the surface interactions you care about.

Local scripts worth remembering (currently unit testing is setup for app only)

PurposeCommandNotes
Run all frontend testspnpm native:test:frontendIncludes Jest, RTL, and UI helpers for Expo/React Native components.
Run backend testspnpm native:test:backendExecutes Vitest suites inside packages/backend.
Run everythingpnpm testTurbo runs both frontend and backend tests plus watch-friendly tooling.
Lint & type checkpnpm lint && pnpm check-typesCatch formatting/type issues before you push.

Keep tests useful

  1. Prefer component-level assertions (getByRole, user.press) instead of implementation details.
  2. Use the shared helpers and mocks from apps/native/src/lib/test-utils to wrap providers (Auth, Convex, Theme).
  3. When you add a feature, pair your component tests with a backend Vitest that exercises the corresponding Convex action.
  4. Run the CI commands locally before pushing to avoid surprises.

Next steps

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

On this page