Files
geointel/backend/tests/test_sprint195_guided_detection_workflow.py
T

79 lines
2.8 KiB
Python

from __future__ import annotations
from pathlib import Path
from tests.frontend_contract import read_feature
ROOT = Path(__file__).resolve().parents[2]
def read(path: str) -> str:
return (ROOT / path).read_text(encoding="utf-8")
def test_guided_detection_reuses_canonical_raster_and_detection_apis() -> None:
hook = read_feature("detection")
assert "prepareAndRunDetection" in hook
assert "datasetsApi.rasterTile" in hook
assert "datasetsApi.rasterInspect" in hook
assert "rasterTileCount" in hook
assert "expectedTileCount > maxTiles" in hook
assert "tile_size: 512" in hook
assert "overlap: 64" in hook
assert "detectionApi.getYoloPreflight" in hook
assert "const result = await executeDetection(" in hook
assert "effectiveModelId" in hook
assert "effectiveModelAssetId" in hook
assert "await loadDetectionResults(result.analysis_run_id)" in hook
assert "model_id: modelId" in hook
assert "model_asset_id: modelAssetId || null" in hook
assert "effectiveModelId" in hook
assert "effectiveModelAssetId" in hook
def test_guided_detection_upload_uses_existing_dataset_persistence_boundary() -> None:
hook = read_feature("detection")
assert "uploadDetectionRaster" in hook
assert "datasetsApi.upload" in hook
assert "datasetType: 'raster'" in hook
assert "datasetRole: 'source'" in hook
assert "sourceName: 'manual'" in hook
assert "explicit_user_upload" in hook
def test_detection_lab_hides_manifest_plumbing_and_exposes_map_first_result_flow() -> None:
lab = read_feature("detection")
app = read_feature("shell")
assert "Gebouwen zoeken en op kaart tonen" in lab
assert 'aria-label="Luchtbeeld toevoegen"' in lab
assert 'aria-label="Technische tegelinstellingen"' in lab
assert "Worden automatisch voorbereid" in lab
assert "Toon op kaart" in lab
assert "onPrepareAndRunDetection={runGuidedDetection}" in app
assert "setMapContentMode('analysis')" in app
assert "setMapLayerVisible(true)" in app
assert "setActiveWorkspace('map')" in app
def test_detection_qa_remains_persisted_and_primary_not_parallel() -> None:
lab = read_feature("detection")
hook = read_feature("detection")
assert 'aria-label="Kwaliteitscontrole gebouwdetectie"' in lab
assert "als kwaliteitscontrole in de database bewaard" in lab
assert "detectionApi.compareWithReference" in hook
assert "await loadQualityChecks(projectId)" in hook
assert "detectionQaRequestSequence.current" in hook
assert "Minimale IoU voor een match" in lab
assert "detectionQaResult.iou_threshold.toFixed(2)" in lab
def test_active_analysis_is_not_presented_as_the_underlying_source_dataset() -> None:
app = read_feature("shell")
assert "analysisMapLayerActive && mapFeatureCollection" in app
assert "`${mapLayerLabel} · controle vereist`" in app