from pathlib import Path from tests.frontend_contract import read_feature ROOT = Path(__file__).resolve().parents[2] def read_text(relative_path: str) -> str: return (ROOT / relative_path).read_text(encoding="utf-8") def test_map_qa_result_exposes_quality_check_evidence_contract(): types = read_text("frontend/src/types.ts") hook = read_text("frontend/src/hooks/useMapSelectionQa.ts") workspace = read_feature("map_workspace") app = read_text("frontend/src/WorkbenchApp.tsx") assert "quality_check_id?: string" in types assert "latestMapSelectionQualityCheckId" in hook assert "parsed.quality_check_id" in hook assert "setLatestMapSelectionQualityCheckId" in hook assert "onOpenMapSelectionQualityEvidence" in app assert "setActiveWorkspace('analysis')" in app assert "latestMapSelectionQualityCheckId={latestMapSelectionQualityCheckId}" in app assert "onOpenMapSelectionQualityEvidence={openMapSelectionQualityEvidence}" in app assert "Kaartbewijs" in workspace assert "Status bewijs" in workspace assert "Gemiddelde overlap" in workspace assert "Onterecht gevonden" in workspace assert "Gemist" in workspace assert "Aandachtspunten bij de kwaliteitscontrole" in workspace assert "Kaartbewijs openen" in workspace def test_map_qa_evidence_keeps_backend_contract_unchanged(): app = read_text("frontend/src/WorkbenchApp.tsx") api_contracts = read_text("docs/API_CONTRACTS.md") assert "/api/v1/qa/detections-vs-reference" in api_contracts assert "qaApi.runQa" not in app