diff --git a/adr/0009-hybrid-testing-approach.md b/adr/0009-hybrid-testing-approach.md index 15585f0..2e4248b 100644 --- a/adr/0009-hybrid-testing-approach.md +++ b/adr/0009-hybrid-testing-approach.md @@ -1,10 +1,9 @@ # Combine BDD and Swagger-based testing -**Status:** Partially Implemented (BDD + Documentation only) +**Status:** Implemented (BDD + OpenAPI documentation operational; SDK generation explicitly out of scope — would require a fresh ADR if reopened) **Authors:** Gabriel Radureau, AI Agent **Date:** 2026-04-05 -**Last Updated:** 2026-04-05 -**Implementation Status:** BDD testing and OpenAPI documentation completed, SDK generation deferred +**Last Updated:** 2026-05-05 ## Context and Problem Statement @@ -36,7 +35,7 @@ Chosen option: "Hybrid approach" because it provides the best combination of beh ## Implementation Status -**Status**: ✅ Partially Implemented (BDD + Documentation only) +**Status**: ✅ Implemented (BDD + OpenAPI documentation operational; SDK generation explicitly out of scope) ### What We Actually Have @@ -329,7 +328,7 @@ If we need SDK generation in the future: - Add SDK-based BDD tests - Implement true hybrid testing approach -**Current Status:** ✅ Partially Implemented (BDD + Documentation) +**Current Status:** ✅ Implemented (BDD + OpenAPI documentation; SDK generation out of scope) **BDD Tests:** http://localhost:8080/api/health (all passing) **OpenAPI Docs:** http://localhost:8080/swagger/ **OpenAPI Spec:** http://localhost:8080/swagger/doc.json diff --git a/adr/0013-openapi-swagger-toolchain.md b/adr/0013-openapi-swagger-toolchain.md index 1d27358..4f1f775 100644 --- a/adr/0013-openapi-swagger-toolchain.md +++ b/adr/0013-openapi-swagger-toolchain.md @@ -1,11 +1,10 @@ # 13. OpenAPI/Swagger Toolchain Selection **Date:** 2026-04-05 -**Status:** Partially Implemented (Documentation only) +**Status:** Implemented (OpenAPI documentation operational; SDK generation explicitly out of scope, see ADR-0009) **Authors:** Arcodange Team **Implementation Date:** 2026-04-05 -**Last Updated:** 2026-04-05 -**Status:** OpenAPI documentation operational, SDK generation deferred +**Last Updated:** 2026-05-05 ## Context @@ -983,7 +982,7 @@ If we need SDK generation in the future: 4. Implement request validation middleware 5. Migrate to OpenAPI 3.0 if needed -**Current Status:** ✅ Partially Implemented (Documentation only) +**Current Status:** ✅ Implemented (OpenAPI documentation; SDK generation out of scope) **Implementation:** swaggo/swag with embedded documentation **Documentation:** http://localhost:8080/swagger/ **OpenAPI Spec:** http://localhost:8080/swagger/doc.json diff --git a/adr/0018-user-management-auth-system.md b/adr/0018-user-management-auth-system.md index 893b5c6..238fb2b 100644 --- a/adr/0018-user-management-auth-system.md +++ b/adr/0018-user-management-auth-system.md @@ -1,7 +1,7 @@ # 18. User Management and Authentication System **Date:** 2026-04-06 -**Status:** Partially Implemented +**Status:** Implemented (user model, JWT auth, password-reset workflow, admin endpoints, greet personalization, BDD coverage all live; future enhancements like 2FA / email verification belong in separate ADRs) **Authors:** Product Owner **Decision Drivers:** Security, User Personalization, Admin Functionality diff --git a/adr/0019-postgresql-integration.md b/adr/0019-postgresql-integration.md index 625c336..9818b86 100644 --- a/adr/0019-postgresql-integration.md +++ b/adr/0019-postgresql-integration.md @@ -1,7 +1,7 @@ # 19. PostgreSQL Database Integration **Date:** 2026-04-07 -**Status:** Partially Implemented +**Status:** Implemented (core integration; performance tuning + extended monitoring tracked as future work) **Authors:** Product Owner **Decision Drivers:** Data Persistence, Scalability, Production Readiness @@ -671,10 +671,10 @@ func AfterScenario(ctx context.Context, sc *godog.Scenario, err error) (context. ## Future Considerations ### Immediate Next Steps (Post-Migration) -1. **CI/CD Integration:** Add PostgreSQL to CI pipeline -2. **Performance Tuning:** Query optimization -3. **Monitoring:** Database health metrics -4. **Backup Strategy:** Regular database backups +1. **CI/CD Integration:** Add PostgreSQL to CI pipeline — ✅ Implemented (`postgres:15` service in `.gitea/workflows/ci-cd.yaml`, all BDD tests run against real Postgres) +2. **Performance Tuning:** Query optimization — Deferred. No production hot path identified. Reopen as separate ADR if/when latency budget exceeded. +3. **Monitoring:** Database health metrics — Partial. `/api/healthz` reports DB connectivity. Deeper metrics (slow query log, pool stats) deferred until ADR-0022 cache Phase 2 lands. +4. **Backup Strategy:** Regular database backups — Deferred. No production data yet. Will require separate ADR before any production data lands. ### Long-Term Enhancements 1. **Database Sharding:** For horizontal scaling diff --git a/adr/0024-bdd-test-organization-and-isolation.md b/adr/0024-bdd-test-organization-and-isolation.md index 61fba89..f8f2827 100644 --- a/adr/0024-bdd-test-organization-and-isolation.md +++ b/adr/0024-bdd-test-organization-and-isolation.md @@ -1,6 +1,6 @@ # ADR 0024: BDD Test Organization and Isolation Strategy -**Status:** Partially Implemented +**Status:** Implemented (Phase 1 + Phase 2 + Phase 3 — parallel testing via [PR #35](https://gitea.arcodange.lab/arcodange/dance-lessons-coach/pulls/35), isolation strategy detailed in [ADR-0025](0025-bdd-scenario-isolation-strategies.md)) ## Context @@ -284,20 +284,22 @@ func CleanupFeatureData(featureName string) { ## Implementation Plan -### Phase 1: Refactor Current Tests (1-2 weeks) -1. Split monolithic feature files into feature directories -2. Create feature-specific test scripts -3. Implement basic isolation (config files, database names) +### Phase 1: Refactor Current Tests — ✅ Implemented +1. Split monolithic feature files into feature directories — done (see `features//` layout) +2. Create feature-specific test scripts — done +3. Implement basic isolation (config files, database names) — done -### Phase 2: Enhance Test Infrastructure (2-3 weeks) -1. Add synchronization helpers to test framework -2. Implement server lifecycle management -3. Create comprehensive cleanup routines +### Phase 2: Enhance Test Infrastructure — ✅ Implemented +1. Add synchronization helpers to test framework — done +2. Implement server lifecycle management — done (`pkg/bdd/testserver/server.go`) +3. Create comprehensive cleanup routines — done -### Phase 3: Parallel Testing (Optional) -1. Add parallel test execution capability -2. Implement port management for parallel runs -3. Add resource monitoring +### Phase 3: Parallel Testing — ✅ Implemented (PR #35, 2026-05-03) +1. Add parallel test execution capability — done (schema-per-package isolation, **2.85x speedup**) +2. Implement port management for parallel runs — done (`pkg/bdd/parallel/port_manager.go`) +3. Add resource monitoring — deferred (not blocking; can be reopened as separate ADR if/when CI flakiness re-emerges) + +The strategy choice between alternatives (TRUNCATE vs schema isolation vs container-per-test) is documented in [ADR-0025](0025-bdd-scenario-isolation-strategies.md). Default behavior in CI is `BDD_SCHEMA_ISOLATION=true` (cf. `documentation/BDD_TEST_ENV.md`). ## Alternatives Considered