from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_map_selection_qa_shortcut_uses_existing_qa_workflow_contract() -> None: hook_path = ROOT / "frontend" / "src" / "hooks" / "useMapSelectionQa.ts" app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8") assert hook_path.exists() hook = hook_path.read_text(encoding="utf-8") assert "qaApi.runQa" in hook assert "loadQualityChecks" in hook assert "candidateDataset = latestSelectionDataset" in hook assert "candidate_dataset_id: candidateDataset.id" in hook assert "reference_dataset_id: selectedMapQaReferenceDatasetId" in hook assert "setMapQaResult" in hook assert "useMapSelectionQa" in app assert "mapQaReferenceDatasets={referenceDatasets}" in app assert "onRunMapSelectionQa={runMapSelectionQa}" in app assert "Run QA on saved dataset" in map_workspace assert "mapSelectionQaError" in map_workspace assert "mapSelectionQaResult" in map_workspace def test_app_keeps_qa_api_calls_out_of_orchestration() -> None: app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") assert "qaApi" not in app assert "from './services/api'" not in app