Extract demo workflow hook
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 07:52:14 +02:00
parent 0c135b420d
commit 6d655a1f1a
8 changed files with 165 additions and 44 deletions
@@ -22,8 +22,8 @@ def test_demo_workflow_browser_smoke_script_checks_connected_v1_state() -> None:
def test_frontend_demo_action_loads_candidate_dataset_details_for_map_layer() -> None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
demo_hook = (ROOT / "frontend" / "src" / "hooks" / "useDemoWorkflow.ts").read_text(encoding="utf-8")
assert "const candidateDataset = projectData?.datasets.find" in app
assert "dataset.id === result.candidate_dataset_id" in app
assert "await loadDatasetDetails(result.project_id, candidateDataset)" in app
assert "const candidateDataset = projectData?.datasets.find" in demo_hook
assert "dataset.id === result.candidate_dataset_id" in demo_hook
assert "await loadDatasetDetails(result.project_id, candidateDataset)" in demo_hook
@@ -10,20 +10,37 @@ def test_app_uses_shared_orchestration_hooks() -> None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
assert "useProjectWorkspace" in app
assert "useDemoWorkflow" in app
assert "useProviderCapabilities" in app
assert "useChangeDetectionWorkflow" in app
assert "useMapWorkspaceState" in app
assert "from './hooks/useProjectWorkspace'" in app
assert "from './hooks/useDemoWorkflow'" in app
assert "from './hooks/useProviderCapabilities'" in app
assert "from './hooks/useChangeDetectionWorkflow'" in app
assert "from './hooks/useMapWorkspaceState'" in app
assert "projectsApi" not in app
assert "areasApi" not in app
assert "datasetsApi" not in app
assert "demoApi" not in app
assert "analysisApi" not in app
assert "externalApi" not in app
def test_demo_workflow_hook_owns_demo_api_and_cross_module_selection() -> None:
hook = (ROOT / "frontend" / "src" / "hooks" / "useDemoWorkflow.ts").read_text(encoding="utf-8")
assert "demoApi.seedWorkflow" in hook
assert "loadDemoWorkflow" in hook
assert "setSelectedProjectId(result.project_id)" in hook
assert "setSelectedDatasetId(result.candidate_dataset_id)" in hook
assert "setSelectedMapAreaId(result.area_id)" in hook
assert "setQaCandidateDatasetId(result.candidate_dataset_id)" in hook
assert "setDetectionReferenceDatasetId(result.reference_dataset_id)" in hook
assert "setSegmentationReferenceDatasetId(result.reference_dataset_id)" in hook
assert "loadDatasetDetails(result.project_id, candidateDataset)" in hook
def test_project_workspace_hook_owns_project_area_dataset_loading() -> None:
hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")