60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
|
|
|
|
def test_app_uses_dataset_workflow_hook() -> None:
|
|
app = (ROOT / "frontend" / "src" / "App.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 = (ROOT / "frontend" / "src" / "hooks" / "useDatasetWorkflow.ts").read_text(encoding="utf-8")
|
|
|
|
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" / "App.tsx").read_text(encoding="utf-8")
|
|
|
|
assert "<form onSubmit={uploadDataset}" in app
|
|
assert "onClick={() => loadDatasetDetails(selectedProjectId ?? '', dataset)}" in app
|
|
assert "onClick={() => refreshMetadata(dataset.id)}" in app
|
|
assert "onClick={runRasterInspect}" in app
|
|
assert "onClick={runRasterPreview}" in app
|
|
assert "onClick={runRasterStats}" in app
|
|
assert "onClick={runRasterReproject}" in app
|
|
assert "onClick={runRasterClip}" in app
|
|
assert "onClick={runRasterTile}" in app
|
|
assert "onClick={runRasterNdvi}" in app
|
|
assert "onClick={runRasterNdwi}" in app
|
|
assert "onClick={runRasterNdbi}" in app
|
|
assert "onClick={runVectorClip}" in app
|
|
assert "onClick={runVectorBuffer}" in app
|
|
assert "onClick={() => runVectorIntersect(availableVectorTargets)}" in app
|