Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,4 @@ npm-debug.log*

# Metro
metro-cache/
coverage/
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,25 @@ npm run android # Android
npm run ios # iOS (Mac only)
```

### CI Quality Gates

Before opening a PR, run the full local quality gate to ensure CI will pass:

```bash
# 1. Type-check the entire codebase (must produce zero errors)
npm run typecheck

# 2. Run all unit tests with coverage enforcement
# Overall line/function/branch/statement coverage must stay >= 75%
npm run test:coverage

# 3. Lint
npm run lint
```

> **Note:** `npm test` (used in CI) runs without the `--coverage` flag for speed.
> Use `npm run test:coverage` locally to verify you have not dropped coverage below the 75% threshold.

### Environment Variables

```env
Expand Down Expand Up @@ -296,8 +315,11 @@ npm run typecheck
# Run unit tests (135 tests)
npm test

# Run with coverage
npm test -- --coverage
# Run tests with coverage enforcement (>= 75% lines/functions/branches/statements)
npm run test:coverage

# Type-check the entire codebase (zero TypeScript errors required)
npm run typecheck

# Run integration tests (requires running backend)
npm run test:integration
Expand Down Expand Up @@ -335,6 +357,10 @@ actually supports.

### Test Coverage

The project enforces a **75% minimum coverage threshold** across lines, functions,
branches, and statements. Run `npm run test:coverage` before opening a PR to
verify you have not regressed below the threshold.

| Category | Tests | Files |
| ------------------- | ----- | ----------------------------------------------------------------------------------------------------------- |
| Store logic | 19 | walletStore, taskStore, userStore, activityStore |
Expand Down
Loading