Files
missions/_docs/tasks/_dependencies_table.md
Oleksandr Bezdieniezhnykh 3398ec49a0
ci/woodpecker/push/build-arm Pipeline was successful
Enhance test infrastructure and configuration for JWKS and Docker setup
- 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.
2026-05-16 10:20:38 +03:00

5.6 KiB
Raw Permalink Blame History

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 02) 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