Files
satellite-provider/_docs/03_implementation/test_run_step7.md
T
Oleksandr Bezdieniezhnykh cc0a876168 [AZ-AUTODEV] Step 7 (Run Tests): smoke profile + green run
Add a fast integration profile so Step 7 (and future autodev
re-entries) can verify the full stack in ~2 min instead of ~15 min,
without losing access to the long-running coverage when needed.

- TestRunMode.cs: smoke flag + tightened poll/timeout values.
- Program.cs: env var INTEGRATION_TESTS_MODE / --smoke|--full CLI
  switch; smoke runs Tile + 200m region + simple route + ZIP route +
  Security; full keeps the existing sequence.
- RegionTests / ExtendedRouteTests: read timeouts from TestRunMode
  instead of hardcoding 120/180/360.
- docker-compose.tests.yml: forwards INTEGRATION_TESTS_MODE to the
  integration-tests container (default 'full').
- scripts/run-tests.sh: adds --unit-only / --smoke / --full flags,
  loads .env automatically, fails fast if GOOGLE_MAPS_API_KEY is
  missing.

Step 7 result: all tests passed in 111.86 s wall-clock (35/35 unit +
5/5 smoke integration scenarios incl. SEC-01..04). Report saved to
_docs/03_implementation/test_run_step7.md.

State advanced to Step 8 (Refactor).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-10 05:29:10 +03:00

3.3 KiB
Raw Blame History

Test Run Report — Step 7

Date: 2026-05-10 Mode: functional, smoke profile Runner: scripts/run-tests.sh --smoke Wall-clock time: 111.86 s Outcome: PASS

System-Under-Test Reality Gate

  • All tests exercised the real product: real SatelliteProvider.Api container, real PostgreSQL container, real ITileService/IRegionService/IRouteService implementations.
  • External boundary stub: none. Google Maps API was called live; this is allowed per the skill (Google Maps is an external system outside the product boundary).
  • No internal product modules were faked, monkeypatched, or replaced. Verdict: gate passes.

Smoke Subset Coverage

Test Outcome Notes
Unit suite (SatelliteProvider.Tests) 35 / 35 passed Run inside mcr.microsoft.com/dotnet/sdk:8.0, configuration Release
TileTests.RunGetTileByLatLonTest BT-01 cold tile
RegionTests.RunRegionProcessingTest_200m_Zoom18 BT-03 region pipeline (no stitch)
BasicRouteTests.RunSimpleRouteTest BT-06/BT-07 interpolation
ExtendedRouteTests.RunRouteWithTilesZipTest BT-08/BT-09 + RL-01 (ZIP = 1.42 MB, well under 50 MB cap)
SecurityTests.RunAll SEC-01 non-numeric coord → 400; SEC-02 traversal → 404×3; SEC-03 oversized region → 400; SEC-04 malformed JSON → 400

Skipped From Smoke (kept available behind --full)

Skipped Test Reason Coverage Substitute
RegionTests.RunRegionProcessingTest_400m_Zoom17 Redundant with 200m for region pipeline shape None needed; same code path
RegionTests.RunRegionProcessingTest_500m_Zoom18 (stitch) Unit-test parity exists RegionServiceTests.ProcessRegionAsync_StitchEnabled_SetsStitchedImagePath_BT05_AC4
BasicRouteTests.RunRouteWithRegionProcessingAndStitching Long path; subsumed by ZIP test for map processing RunRouteWithTilesZipTest covers BT-08
ComplexRouteTests.RunComplexRouteWithStitching Long path; multi-point variant Full mode
ComplexRouteTests.RunComplexRouteWithStitchingAndGeofences Long path; geofence variant RouteServiceTests.CreateRouteAsync_ValidGeofence_QueuesGeofenceRegions_BT11 (unit) for the validation code path
ExtendedRouteTests.RunExtendedRouteEast 20-point route, 6-min timeout Full mode

These are not deleted. scripts/run-tests.sh --full (default) still runs the entire integration suite for nightly / pre-release verification.

Timeout Adjustments in Smoke Mode

SatelliteProvider.IntegrationTests/TestRunMode.cs introduces:

Parameter Smoke value Full value
RegionPollAttempts (× 2 s = max wait) 45 (90 s) 120 (240 s)
RouteReadyTimeoutSeconds 90 180
ExtendedRouteReadyTimeoutSeconds 90 360

Full-mode behavior is preserved exactly when INTEGRATION_TESTS_MODE is unset or full (default).

Evidence Artifacts

  • ./ready/region_*_ready.csv, ./ready/region_*_summary.txt, ./ready/region_*_stitched.jpg (region pipeline outputs)
  • ./ready/route_<id>_tiles.zip (ZIP test output, 1.42 MB)
  • ./tiles/18/<x>/<y>.jpg (downloaded tile cache)

These match the contracts specified in _docs/02_document/tests/blackbox-tests.md.

Failures / Skips

None. Verdict: PASS. Auto-chain to Step 8.