docs: reconcile documentation with reality (P3)

Make the project's documentation match the code and remove the sprawl. The docs
claimed Phase 2.8 (drug interactions) was 'planning/0%' and the backend '~91%
complete' — both wrong: 2.8 is implemented and live, plus the P0/P1 security
and test work is done. Five root CI/CD docs described a 'docker-build' CI job
that was removed; ~18 backend/ status snapshots and ~24 docs/implementation
duplicates cluttered the tree.

Deletions (85 files):
- Root: 4 stale CI/CD reports (CI-CD-{COMPLETION-REPORT,IMPLEMENTATION-SUMMARY,
  STATUS-REPORT,FINAL-STATUS}.md) — all describe the removed docker-build job.
- backend/: 18 phase/build/fix snapshots and code-dump .txt files.
- docs/: the 3 one-time reorg reports; ~17 docs/implementation duplicates and
  process artifacts; 4 stale docs/development CI docs + git snapshots;
  redundant deployment/testing files.
- thoughts/: STATUS.md (said Phase 2.4 in-progress), superseded phase notes and
  duplicative research inputs. tmp/ (928KB of CI debug logs, gitignored).

Moves (18 files):
- 9 genuine decision records -> docs/adr/ (Architecture Decision Records),
  date-prefixes stripped, with an index README.
- 8 historical-but-valuable phase plans/specs + the old CI-CD-FINAL-SOLUTION ->
  docs/archive/ (now-populated, with a README explaining it's superseded
  material). thoughts/ tree removed.

Rewrites (13 files) to match reality:
- Drop the fake '% complete' figures everywhere in favor of Implemented /
  In-Progress / Planned with concrete endpoint/feature lists.
- Phase 2.8 -> Implemented; add /api/interactions/* and /api/auth/{refresh,
  logout} to the endpoint lists; fix 'Rust 1.93' -> edition 2021.
- Add a Security section (token_version validation, hashed refresh-token
  persistence, fail-fast config, real-IP audit) and correct the test-coverage
  and deployment claims to reality.
- New canonical docs/development/CI-CD.md (4 jobs: format/clippy/build/test,
  mongo service, no docker-build + why).
- README, docs/README, product/{STATUS,ROADMAP,PROGRESS,README,introduction},
  implementation/README, development/README, testing/README, AI_AGENT_GUIDE,
  .cursorrules, .gooserules all updated.

Verified: greps for 'Phase 2.8 (Planning)', 'PLANNING (0%)', 'Rust 1.93',
'91%/10%/85% complete', and 'docker-build' return nothing outside docs/archive;
all internal doc links resolve; backend/src untouched (cargo build clean).
This commit is contained in:
goose 2026-06-27 16:02:16 -03:00
parent bd1b7c2925
commit 17efc4f656
119 changed files with 469 additions and 17801 deletions

View file

@ -1,72 +1,48 @@
# Testing Documentation
This section contains test scripts, test results, and testing documentation.
Test scripts, test notes, and the layout of the automated test suite.
## 🧪 Test Scripts
## Automated test suite (`backend/`)
The authoritative tests live in the backend crate and run via `cargo test`:
- **Unit tests** (`cargo test --lib`) — 18 tests in `src/`: client-IP resolution,
JWT round-trips, refresh-token hashing, token-version cache, services.
- **Integration tests** (`cargo test --test auth_tests --test medication_tests`) —
13 tests in `tests/`, built in-process against an isolated per-run MongoDB
database via the shared `tests/common/mod.rs` helper. They **skip gracefully**
when MongoDB is unreachable, so `cargo test` stays green without a database.
Cover: register, login (right/wrong password), auth enforcement, refresh
rotation + reuse detection, logout, password-change invalidation, and
medication CRUD/auth flows.
To run the integration tests for real, start a MongoDB first:
```bash
docker run -d -p 27017:27017 --name mongo-test mongo:7
cd backend && cargo test --test auth_tests --test medication_tests
```
CI runs the full suite with a `mongo:7` service container — see
[../development/CI-CD.md](../development/CI-CD.md).
## Manual / smoke test scripts
### API Testing
- **[test-api-endpoints.sh](./test-api-endpoints.sh)** - Comprehensive API endpoint testing
- **[test-medication-api.sh](./test-medication-api.sh)** - Medication-specific API tests
- **[test-meds.sh](./test-meds.sh)** - Quick medication tests
### Integration Testing
- **[test-mvp-phase-2.7.sh](./test-mvp-phase-2.7.sh)** - Phase 2.7 MVP comprehensive tests
- **[solaria-test.sh](./solaria-test.sh)** - Solaria deployment testing
- **[check-solaria-logs.sh](./check-solaria-logs.sh)** - Log checking utility
- **[quick-test.sh](./quick-test.sh)** - Fast smoke test
### Quick Tests
- **[quick-test.sh](./quick-test.sh)** - Fast smoke tests
> Historical test-run snapshots are in [../archive/](../archive/README.md).
## 📊 Test Results
## Notes
- **[API_TEST_RESULTS_SOLARIA.md](./API_TEST_RESULTS_SOLARIA.md)** - API test results from Solaria deployment
## 🚀 Running Tests
### Quick Smoke Test
```bash
./docs/testing/quick-test.sh
```
### Full API Test Suite
```bash
./docs/testing/test-api-endpoints.sh
```
### Medication API Tests
```bash
./docs/testing/test-medication-api.sh
```
### Phase 2.7 MVP Tests
```bash
./docs/testing/test-mvp-phase-2.7.sh
```
## 📋 Test Coverage
### Backend Tests
- ✅ Authentication (login, register, token refresh)
- ✅ User management (profile, settings)
- ✅ Permissions & shares
- ✅ Medications (CRUD, logging, adherence)
- ✅ Health statistics
- ✅ Security (rate limiting, session management)
- 🚧 Drug interactions (in progress)
### Test Types
- **Unit Tests**: Rust `cargo test`
- **Integration Tests**: API endpoint tests
- **E2E Tests**: Full workflow tests
- **Deployment Tests**: Post-deployment verification
## 📝 Test Notes
- All tests require MongoDB to be running
- Some tests require valid JWT tokens
- Solaria tests require VPN/connection to Solaria server
- Test data is isolated to prevent conflicts
- Manual scripts that hit a live server need MongoDB running and (for protected
routes) a valid JWT.
- Solaria tests require network access to the Solaria server.
---
*Last Updated: 2026-03-09*
*Last Updated: 2026-06-27*