Files
geointel/backend/tests/test_sprint28_dataset_workflow_hook.py
T
NuklearRabbit 7fbb42c9ef
Managed validation / full (pull_request) Successful in 18s
GeoIntel release gates / Compile, test, contracts and builds (pull_request) Successful in 2m56s
GeoIntel release gates / Python and npm vulnerability policy (pull_request) Successful in 24s
GeoIntel release gates / GIS image, SBOM and container scan (pull_request) Failing after 54s
test: align source contracts with modular workbench
2026-08-29 01:52:08 +02:00

71 lines
3.0 KiB
Python

from __future__ import annotations
from pathlib import Path
from tests.frontend_contract import read_feature
ROOT = Path(__file__).resolve().parents[2]
def test_app_uses_dataset_workflow_hook() -> None:
app = (ROOT / "frontend" / "src" / "WorkbenchApp.tsx").read_text(encoding="utf-8")
assert "useDatasetWorkflow" in app
assert "from './hooks/useDatasetWorkflow'" in app
assert "datasetsApi.upload" not in app
assert "jobsApi" not in app
assert "datasetsApi.vectorClip" not in app
assert "datasetsApi.rasterTile" not in app
def test_dataset_workflow_hook_owns_dataset_api_calls() -> None:
hook = read_feature("datasets")
assert "datasetsApi.upload" in hook
assert "datasetsApi.getContent" in hook
assert "datasetsApi.vectorSummary" in hook
assert "datasetsApi.vectorClip" in hook
assert "datasetsApi.vectorBuffer" in hook
assert "datasetsApi.vectorIntersect" in hook
assert "datasetsApi.inspectRaster" in hook
assert "datasetsApi.rasterPreview" in hook
assert "datasetsApi.rasterStats" in hook
assert "datasetsApi.rasterReproject" in hook
assert "datasetsApi.rasterClip" in hook
assert "datasetsApi.rasterTile" in hook
assert "datasetsApi.rasterNdvi" in hook
assert "datasetsApi.rasterNdwi" in hook
assert "datasetsApi.rasterNdbi" in hook
assert "datasetsApi.refreshMetadata" in hook
assert "jobsApi.list" in hook
def test_app_still_wires_dataset_ui_callbacks() -> None:
app = (ROOT / "frontend" / "src" / "WorkbenchApp.tsx").read_text(encoding="utf-8")
dataset_panel = read_feature("datasets")
detail_panel = read_feature("datasets")
assert "<DatasetPanel" in app
assert "onUploadDataset={uploadDataset}" in app
assert "onLoadDatasetDetails={loadDatasetDetails}" in app
assert "onRefreshMetadata={refreshMetadata}" in app
assert "<WorkbenchInspector" in app
assert "datasetDetailProps={{" in app
assert "onRunRasterInspect: runRasterInspect" in app
assert "onRunRasterPreview: runRasterPreview" in app
assert "onRunRasterStats: runRasterStats" in app
assert "onRunRasterReproject: runRasterReproject" in app
assert "onRunRasterClip: runRasterClip" in app
assert "onRunRasterTile: runRasterTile" in app
assert "onRunRasterNdvi: runRasterNdvi" in app
assert "onRunRasterNdwi: runRasterNdwi" in app
assert "onRunRasterNdbi: runRasterNdbi" in app
assert "onRunVectorClip: runVectorClip" in app
assert "onRunVectorBuffer: runVectorBuffer" in app
assert "onRunVectorIntersect: () => runVectorIntersect(availableVectorTargets)" in app
assert '<form className="dataset-upload-form" onSubmit={onUploadDataset}' in dataset_panel
assert "onClick={() => onLoadDatasetDetails(selectedProjectId ?? '', dataset)}" in dataset_panel
assert "onClick={() => onRefreshMetadata(dataset.id)}" in dataset_panel
assert "onRunRasterInspect={onRunRasterInspect}" in detail_panel
assert "onRunVectorIntersect={onRunVectorIntersect}" in detail_panel