from __future__ import annotations from pathlib import Path from tests.frontend_contract import read_feature ROOT = Path(__file__).resolve().parents[2] def test_detection_lab_exposes_run_readiness_contract() -> None: lab = read_feature("detection") assert "selectedDetectionModel = detectionModels.find" in lab assert "detectionRequiresTileManifest = selectedDetectionModelId === 'yolo-configured'" in lab assert "detectionTileManifestPath.trim().length > 0" in lab assert "detectionRunReady" in lab assert 'aria-label="Startklaar voor gebouwdetectie"' in lab assert "Wat is nog nodig?" in lab assert "Luchtbeeld" in lab assert "Analysemodel" in lab assert "Beeldtegels" in lab assert "Klaar om te starten" in lab def test_segmentation_lab_exposes_run_readiness_contract() -> None: lab = read_feature("segmentation") assert "segmentationHasDataset" in lab assert "segmentationHasTileManifest = segmentationTileManifestPath.trim().length > 0" in lab assert "segmentationRunReady" in lab assert "selectedSegmentationModelConfigured" in lab assert "selectedSegmentationModelLimitation" in lab assert 'aria-label="Startklaar voor segmentatie"' in lab assert "Wat is nog nodig?" in lab assert "Rasterbestand" in lab assert "Analysemodel" in lab assert "Beeldtegels" in lab assert "Klaar om te starten" in lab def test_ai_lab_run_readiness_css_contract() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") assert ".lab-readiness-panel" in css assert ".lab-readiness-panel-ready" in css assert ".lab-readiness-grid" in css assert ".lab-readiness-item" in css assert ".lab-readiness-item-ready" in css