from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_frontend_declares_national_scope_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" ) navigation = ( ROOT / "frontend" / "src" / "components" / "shell" / "WorkbenchNavigation.tsx" ).read_text(encoding="utf-8") assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus assert "NATIONAL_MAP_CENTER" in focus assert "return nationalProject.id" 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 "PRIMARY_FOCUS_AREA_NAME" not in project_hook assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook assert "center: NATIONAL_MAP_CENTER" in map_source assert "zoom: NATIONAL_MAP_ZOOM" in map_source assert "GeoIntel" in navigation assert "Atlas Workbench" in navigation 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_national_scope_and_mol_regression_focus() -> None: readme = (ROOT / "README.md").read_text(encoding="utf-8") vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8") assert "Belgium and the Belgian North Sea" in readme assert "Mol and the Kempen remain deep regression" in readme assert "Belgie en de Belgische Noordzee" in vision assert "Mol en de Kempen blijven gouden regressiegebieden" in vision