# HarborForge.Backend.Test Independent test suite for HarborForge.Backend. ## Setup ```bash # Create virtual environment python3 -m venv venv source venv/bin/activate # Install dependencies pip install -r requirements.txt ``` ## Run Tests ```bash # Run all tests pytest # Run specific test file pytest tests/test_auth.py # Run with verbose output pytest -v # Run with coverage (requires pytest-cov) pytest --cov=../HarborForge.Backend/app --cov-report=html ``` ## Test Structure | File | Tests | Coverage | |------|-------|----------| | `test_auth.py` | 5 | Login, JWT, protected endpoints | | `test_users.py` | 8 | User CRUD, permissions | | `test_projects.py` | 8 | Project CRUD, ownership | | `test_milestones.py` | 7 | Milestone CRUD, filtering | | `test_tasks.py` | 8 | Task CRUD, filtering | | `test_comments.py` | 5 | Comment CRUD, permissions | | `test_roles.py` | 9 | Role/permission management | | `test_milestone_actions.py` | 17 | Milestone state machine actions | | `test_task_transitions.py` | 34 | Task state machine transitions | | `test_propose.py` | 19 | Propose CRUD, accept/reject/reopen | | `test_misc.py` | 14 | Notifications, activity log, API keys, dashboard | **Total: 134 tests** ## How It Works Tests import the backend code from `../HarborForge.Backend/` via path manipulation in `conftest.py`. Uses SQLite in-memory database for fast, isolated tests.