from pathlib import Path from tests.frontend_contract import read_feature ROOT = Path(__file__).resolve().parents[2] def test_raster_workflow_exposes_structured_tile_manifest_handoff() -> None: hook = read_feature("datasets") types = (ROOT / "frontend" / "src" / "types.ts").read_text(encoding="utf-8") assert "interface RasterTileHandoff" in types assert "latestRasterTileManifest" in hook assert "toRasterTileHandoff(job)" in hook assert "setLatestRasterTileManifest(manifest)" in hook assert "manifest.manifest_path" in hook def test_raster_controls_show_manifest_details_and_ai_handoff_action() -> None: controls = read_feature("datasets") assert "latestRasterTileManifest" in controls assert "Aantal tegels" in controls assert "Tegelgrootte" in controls assert "Overlap" in controls assert "Gebruik voor gebouwdetectie" in controls assert "Gebruik voor segmentatie" in controls def test_detection_handoff_opens_ai_lab_preflights_manifest_and_keeps_asset_explicit() -> None: app = "\n".join( ( (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8"), (ROOT / "frontend" / "src" / "WorkbenchApp.tsx").read_text(encoding="utf-8"), ) ) lab = "\n".join( ( (ROOT / "frontend" / "src" / "components" / "detection" / "DetectionLab.tsx").read_text(encoding="utf-8"), (ROOT / "frontend" / "src" / "components" / "detection" / "DetectionModelManagement.tsx").read_text(encoding="utf-8"), ) ) assert "setDetectionTileManifestPath(manifestPath)" in app assert "setSelectedDetectionDatasetId(selectedDataset.id)" in app assert "setSelectedDetectionModelId('yolo-configured')" in app assert "setDetectionConfidenceThreshold(0.25)" in app assert "loadYoloPreflight(manifestPath).catch(() => meldLaadfout('modelcontrole'))" in app assert "setSelectedModelAssetId(" not in app[app.index("const useRasterTileManifestForDetection"):app.index("const {", app.index("const useRasterTileManifestForDetection"))] assert "Gekoppelde beeldtegels" in lab assert "Gekoppelde beeldtegels" in lab assert "Aantal beeldtegels" in lab assert "yoloPreflight.tile_count" in lab