mirror of
https://github.com/azaion/missions.git
synced 2026-06-21 16:41:07 +00:00
3398ec49a0
ci/woodpecker/push/build-arm Pipeline was successful
- Updated Azaion.Missions.csproj to exclude test sources from service compilation, preventing build failures due to test project dependencies. - Modified docker-compose.test.yml to preload the pg_stat_statements extension for testing and adjusted JWT refresh intervals for better test execution timing. - Enhanced Dockerfile to install wget for health checks and ensure proper initialization of the container. - Introduced a test-only endpoint for JWKS refresh to facilitate end-to-end testing without relying on the default refresh intervals. - Updated DTOs in ApiDtos.cs to reflect camelCase naming conventions for consistency with service responses. - Improved test cases to handle JWKS rotation and refresh scenarios effectively, ensuring robust validation of JWT handling. This commit lays the groundwork for more reliable and efficient testing of the Azaion.Missions project.
94 lines
5.6 KiB
Markdown
94 lines
5.6 KiB
Markdown
# Dependencies Table
|
||
|
||
**Date**: 2026-05-15
|
||
**Mode**: tests-only decomposition (Step 5 of `existing-code` autodev flow)
|
||
**Epic**: AZ-575 — Blackbox Tests — Missions
|
||
**Total Tasks**: 11
|
||
**Total Complexity Points**: 45 (5 + 5 + 5 + 5 + 3 + 5 + 5 + 3 + 5 + 3 + 3)
|
||
|
||
| Task | Name | Complexity | Dependencies | Epic |
|
||
|------|------|-----------|-------------|------|
|
||
| AZ-576 | test_infrastructure | 5 | None | AZ-575 |
|
||
| AZ-577 | test_vehicles_positive | 5 | AZ-576 | AZ-575 |
|
||
| AZ-578 | test_missions_positive | 5 | AZ-576 | AZ-575 |
|
||
| AZ-579 | test_waypoints_health_positive | 5 | AZ-576 | AZ-575 |
|
||
| AZ-580 | test_validation_authz_negative | 3 | AZ-576 | AZ-575 |
|
||
| AZ-581 | test_security_auth_claims | 5 | AZ-576 | AZ-575 |
|
||
| AZ-582 | test_security_alg_rotation_cors | 5 | AZ-576 | AZ-575 |
|
||
| AZ-583 | test_resilience_cascade_migrator | 3 | AZ-576 | AZ-575 |
|
||
| AZ-584 | test_resilience_config_db_rotation_race | 5 | AZ-576 | AZ-575 |
|
||
| AZ-585 | test_resource_limits | 3 | AZ-576 | AZ-575 |
|
||
| AZ-586 | test_performance | 3 | AZ-576 | AZ-575 |
|
||
|
||
## Coverage Verification
|
||
|
||
| Spec file | Scenarios | Covered by |
|
||
|-----------|-----------|------------|
|
||
| `tests/blackbox-tests.md` § Positive | FT-P-01..06 (Vehicles) | AZ-577 |
|
||
| `tests/blackbox-tests.md` § Positive | FT-P-07..12 (Missions) | AZ-578 |
|
||
| `tests/blackbox-tests.md` § Positive | FT-P-13..18 (Waypoints + Health) | AZ-579 |
|
||
| `tests/blackbox-tests.md` § Negative | FT-N-01..08 | AZ-580 |
|
||
| `tests/security-tests.md` | NFT-SEC-01..06 + 04b | AZ-581 |
|
||
| `tests/security-tests.md` | NFT-SEC-07..13 | AZ-582 |
|
||
| `tests/resilience-tests.md` | NFT-RES-01..04 | AZ-583 |
|
||
| `tests/resilience-tests.md` | NFT-RES-05..08 | AZ-584 |
|
||
| `tests/resource-limit-tests.md` | NFT-RES-LIM-01..04 | AZ-585 |
|
||
| `tests/performance-tests.md` | NFT-PERF-01..04 | AZ-586 |
|
||
|
||
**Total scenarios covered**: 56 (18 FT-P + 8 FT-N + 14 NFT-SEC + 8 NFT-RES + 4 NFT-RES-LIM + 4 NFT-PERF).
|
||
|
||
## Cross-Task Consistency Checks
|
||
|
||
| Check | Result |
|
||
|-------|--------|
|
||
| Every scenario from `blackbox-tests.md` § Positive (FT-P-01..18) is covered | PASS |
|
||
| Every scenario from `blackbox-tests.md` § Negative (FT-N-01..08) is covered | PASS |
|
||
| Every scenario from `security-tests.md` (NFT-SEC-01..13 + 04b) is covered | PASS |
|
||
| Every scenario from `resilience-tests.md` (NFT-RES-01..08) is covered | PASS |
|
||
| Every scenario from `resource-limit-tests.md` (NFT-RES-LIM-01..04) is covered | PASS |
|
||
| Every scenario from `performance-tests.md` (NFT-PERF-01..04) is covered | PASS |
|
||
| No task exceeds 5 complexity points | PASS |
|
||
| Every blackbox test task depends on the test-infrastructure task (AZ-576) | PASS |
|
||
| Test-infrastructure task (AZ-576) has no upstream test dependencies | PASS |
|
||
| No circular dependencies in the task graph | PASS — graph is a fan-out: AZ-576 → {AZ-577..AZ-586} |
|
||
| Every e2e/blackbox task has a System Under Test Boundary section | PASS — all 10 child tasks include the section |
|
||
| System Under Test Boundary forbids stubbing internal product modules | PASS — verified in each task spec |
|
||
| System Under Test Boundary requires comparison to expected-results artifacts | PASS — every task references `_docs/00_problem/input_data/expected_results/results_report.md` and/or the relevant machine-readable expected-result JSON |
|
||
|
||
## Overlap & Shared-Concern Notes
|
||
|
||
- **NFT-SEC-08 (Task 15) ↔ FT-N-08 (Task 13)** both exercise the 500 error envelope. FT-N-08 owns the destructive `DROP TABLE vehicles` fault injection and asserts redaction + log line presence; NFT-SEC-08 additionally asserts the body has NO key matching `stack`/`stackTrace`/`exception`/`inner`/`trace`/file-path/type-name. No work duplication — the two tests share the fixture but assert distinct invariants.
|
||
- **NFT-SEC-11 (Task 15) ↔ NFT-RES-07 (Task 17)** both exercise JWKS rotation. NFT-SEC-11 focuses on the `kid`-cache mechanics + grace-window timing; NFT-RES-07 additionally asserts the `docker inspect StartedAt` invariant (no restart). Sharing the same primitive via the `JwksRotateFixture` from AZ-576.
|
||
- **NFT-SEC-12 (Task 15) ↔ NFT-RES-05 (Task 17)** both exercise startup fail-fast on missing required env vars. NFT-SEC-12 covers 4 missing-env cases + HTTP-JWKS-URL path. NFT-RES-05 covers the same 4 missing-env cases + an additional whitespace-only case + the DB-down-after-config-resolution differentiator (proves config resolution succeeded before Npgsql failed). Tasks share the `MissionsContainerHelper` docker-run primitive from AZ-576.
|
||
|
||
## Execution Order Hint
|
||
|
||
Recommended dependency-aware batches for `/implement`:
|
||
|
||
1. **Batch 1 (sequential, blocking the rest)**: AZ-576 — test_infrastructure
|
||
2. **Batch 2 (parallel, fan-out from AZ-576)**: AZ-577..AZ-586 in any order. Independent test classes within a single xUnit assembly; no inter-task ordering needed.
|
||
|
||
CSV report sorting at suite end: by `Category` (Blackbox / Sec / Res / ResLim / Perf), then by test ID within category.
|
||
|
||
---
|
||
|
||
## Refactor: `02-baseline-cleanup` (2026-05-16)
|
||
|
||
**Run**: `_docs/04_refactoring/02-baseline-cleanup/` (quick-assessment, phases 0–2)
|
||
**Epic**: AZ-587 — Refactor 02-baseline-cleanup: remove residual empty scaffolding dirs
|
||
**Total Tasks**: 1
|
||
**Total Complexity Points**: 1
|
||
|
||
| Task | Name | Complexity | Dependencies | Epic |
|
||
|------|------|-----------|-------------|------|
|
||
| AZ-588 | refactor_remove_empty_scaffolding_dirs | 1 | None | AZ-587 |
|
||
|
||
### Cross-Task Consistency Checks
|
||
|
||
| Check | Result |
|
||
|-------|--------|
|
||
| Every change in `02-baseline-cleanup/list-of-changes.md` has a corresponding task | PASS — C01 → AZ-588 |
|
||
| No task exceeds 5 complexity points | PASS |
|
||
| No circular dependencies | PASS — single task, no dependencies |
|
||
| All tasks linked to the run's epic | PASS — AZ-588 → AZ-587 |
|