Extract QA and map workbench components
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-17 04:14:35 +02:00
parent 016926e256
commit acf95905ca
11 changed files with 312 additions and 125 deletions
+8 -5
View File
@@ -19,13 +19,16 @@ def test_geomap_exposes_v1_layer_controls_and_feature_inspection_contract() -> N
assert "setPaintProperty('dataset-fill', 'fill-opacity', opacity)" in geomap
def test_app_wires_map_workbench_controls_and_property_inspector() -> None:
def test_app_wires_map_workbench_component() -> None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
component = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
assert "mapLayerVisible" in app
assert "mapLayerOpacity" in app
assert "selectedMapFeature" in app
assert "Layer visible" in app
assert "Layer opacity" in app
assert "Feature inspector" in app
assert "onFeatureSelect={setSelectedMapFeature}" in app
assert "<MapWorkspace" in app
assert "onSelectMapFeature={setSelectedMapFeature}" in app
assert "Layer visible" in component
assert "Layer opacity" in component
assert "Feature inspector" in component
assert "onFeatureSelect={onSelectMapFeature}" in component
@@ -47,12 +47,14 @@ def test_frontend_wires_selected_area_map_overlay_contract() -> None:
root = __import__("pathlib").Path(__file__).resolve().parents[2]
app = (root / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
geomap = (root / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
area_panel = (root / "frontend" / "src" / "components" / "project" / "AreaPanel.tsx").read_text(encoding="utf-8")
assert "selectedMapAreaId" in app
assert "areaFeatureCollection" in app
assert "areaData={areaFeatureCollection}" in app
assert "Area visible" in app
assert "areaFeatureCollection={areaFeatureCollection}" in app
assert "areaData={areaFeatureCollection}" in map_workspace
assert "Area visible" in map_workspace
assert "area-fill" in geomap
assert "area-line" in geomap
assert "onSelectMapArea" in area_panel
@@ -41,9 +41,14 @@ def test_quality_workflow_hook_owns_quality_api_calls() -> None:
def test_app_still_wires_quality_results_and_export_center() -> None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
quality_panel = (
ROOT / "frontend" / "src" / "components" / "quality" / "QualityResultsPanel.tsx"
).read_text(encoding="utf-8")
assert "Refresh QA/QC results" in app
assert "onClick={() => loadQualityChecks()}" in app
assert "<QualityResultsPanel" in app
assert "onRefresh={() => loadQualityChecks()}" in app
assert "Refresh QA/QC results" in quality_panel
assert "onClick={onRefresh}" in quality_panel
assert "<ExportCenter" in app
assert "onExportDataset={exportSelectedDatasetGeoJson}" in app
assert "onExportDetectionRun={exportSelectedDetectionRunGeoJson}" in app
@@ -0,0 +1,46 @@
from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
def test_app_uses_quality_and_map_presentational_components() -> None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
assert "from './components/quality/QualityResultsPanel'" in app
assert "from './components/map/MapWorkspace'" in app
assert "<QualityResultsPanel" in app
assert "<MapWorkspace" in app
assert "<h2>QA/QC Results</h2>" not in app
assert "<h2>Map workspace</h2>" not in app
assert "<GeoMap" not in app
def test_quality_results_panel_owns_persisted_quality_check_markup() -> None:
quality_panel = (
ROOT / "frontend" / "src" / "components" / "quality" / "QualityResultsPanel.tsx"
).read_text(encoding="utf-8")
assert "QualityCheckRead" in quality_panel
assert "Refresh QA/QC results" in quality_panel
assert "No persisted QA/QC results yet" in quality_panel
assert "check.metrics.map" in quality_panel
assert "fetch(" not in quality_panel
assert "api" not in quality_panel.lower()
def test_map_workspace_owns_map_controls_and_feature_inspector_markup() -> None:
map_workspace = (
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
).read_text(encoding="utf-8")
assert "GeoMap" in map_workspace
assert "Selected area" in map_workspace
assert "Area visible" in map_workspace
assert "Layer visible" in map_workspace
assert "Feature inspector" in map_workspace
assert "onFeatureSelect={onSelectMapFeature}" in map_workspace
assert "fetch(" not in map_workspace
assert "api" not in map_workspace.lower()