mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-21 20:01:13 +00:00
cc0a876168
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>
62 lines
3.3 KiB
Markdown
62 lines
3.3 KiB
Markdown
# 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.
|