Files
geointel/backend/tests/test_sprint39_frontend_orchestration_hooks.py
T
Codex 6d655a1f1a
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled
Extract demo workflow hook
2026-06-17 07:52:14 +02:00

89 lines
3.5 KiB
Python

from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
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")
assert "projectsApi.list" in hook
assert "projectsApi.create" in hook
assert "areasApi.list" in hook
assert "areasApi.create" in hook
assert "datasetsApi.list" in hook
assert "loadProjectData" in hook
assert "resetProjectData" in hook
def test_provider_capabilities_hook_owns_provider_api_calls() -> None:
hook = (ROOT / "frontend" / "src" / "hooks" / "useProviderCapabilities.ts").read_text(encoding="utf-8")
assert "externalApi.listProviders" in hook
assert "loadCapabilities" in hook
assert "loadingCapabilities" in hook
assert "capabilitiesError" in hook
def test_change_detection_hook_owns_change_detection_api_calls() -> None:
hook = (ROOT / "frontend" / "src" / "hooks" / "useChangeDetectionWorkflow.ts").read_text(encoding="utf-8")
assert "analysisApi.runChangeDetection" in hook
assert "runChangeDetection" in hook
assert "changeDetectionResult" in hook
assert "loadDatasetJobs" in hook
def test_map_workspace_state_hook_owns_derived_map_state() -> None:
hook = (ROOT / "frontend" / "src" / "hooks" / "useMapWorkspaceState.ts").read_text(encoding="utf-8")
assert "areaFeatureCollection" in hook
assert "mapFeatureCollection" in hook
assert "mapLayerLabel" in hook
assert "setSelectedMapFeature(null)" in hook
def test_area_selection_fallbacks_live_with_owning_hooks() -> None:
dataset_hook = (ROOT / "frontend" / "src" / "hooks" / "useDatasetWorkflow.ts").read_text(encoding="utf-8")
map_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapWorkspaceState.ts").read_text(encoding="utf-8")
assert "setSelectedClipAreaId(areas[0].id)" in dataset_hook
assert "setSelectedMapAreaId(areas[0].id)" in map_hook