from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_frontend_declares_mol_as_primary_operating_focus() -> None: focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text( encoding="utf-8" ) project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text( encoding="utf-8" ) map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text( encoding="utf-8" ) app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") assert "PRIMARY_FOCUS_LABEL = 'Mol'" in focus assert "PRIMARY_FOCUS_REGION = 'Mol, Kempen'" in focus assert "[5.1167, 51.1919]" in focus assert "isPrimaryFocusProjectData" in focus assert "isPrimaryFocusProjectData(project, data.datasets)" in project_hook assert "hasMappedAnalysisContext(data)" in project_hook assert "dataset.dataset_type === 'raster'" in project_hook assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook assert "const primaryContext = inspectedCandidates.find" in project_hook assert "PRIMARY_FOCUS_AREA_NAME" in project_hook assert "PRIMARY_FOCUS_AREA_GEOJSON" in project_hook assert "4.35,51.28" not in project_hook assert "center: PRIMARY_FOCUS_CENTER" in map_source assert "GeoAI-werkruimte ยท gebiedsdata en analyse" in app def test_operator_workflows_put_mol_first_and_name_future_projects() -> None: samples = (ROOT / "scripts" / "prepare_operator_real_data_samples.py").read_text( encoding="utf-8" ) matrix = (ROOT / "scripts" / "run_detection_quality_matrix.sh").read_text( encoding="utf-8" ) multi_matrix = ( ROOT / "scripts" / "run_multi_sample_detection_quality_matrix.sh" ).read_text(encoding="utf-8") assert samples.index('"mol": OperatorSample(') < samples.index('"geel": OperatorSample(') assert 'QUALITY_SAMPLE_SLUG="${QUALITY_SAMPLE_SLUG:-}"' in matrix assert "sample ${QUALITY_SAMPLE_SLUG}" in matrix assert 'QUALITY_SAMPLE_SLUG="${sample_slug}"' in multi_matrix def test_product_docs_record_mol_primary_focus_without_dropping_kempen_scope() -> None: readme = (ROOT / "README.md").read_text(encoding="utf-8") vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8") assert "primary operating focus is Mol" in readme assert "Mol is de primaire operationele focus" in vision assert "broader Kempen" in readme