# Testing

See `TESTING.md` at the project root for the full guide.

## Required Coverage

Tests are required for all new features. Do not consider a feature complete until tests are written and passing.

| What you're adding | Required test |
|---|---|
| Model function | Unit test in co-located `__tests__/` directory |
| Route loader/action | Unit or integration test for the logic |
| Utility function | Unit test |
| Component with non-trivial logic | Component test (React Testing Library) |
| Critical user flow | Cypress E2E test |

## Test Locations

- **Unit / component tests**: `__tests__/` directories co-located with source files
- **E2E tests**: `cypress/e2e/`
- **Fixtures**: `app/test/fixtures/`

## Commands

```bash
npm run test:run          # unit tests, run once
npm test                  # unit tests, watch mode
npm run test:e2e:headless # Cypress headless
npm run test:all          # everything
```
