53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
from pathlib import Path
|
|
|
|
from app.schemas.flood_hazard import FloodHazardAcquireRequest
|
|
from app.schemas.operations import VectorSelectionBBox
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
|
|
|
|
def read(path: str) -> str:
|
|
return (ROOT / path).read_text(encoding="utf-8")
|
|
|
|
|
|
def test_official_map_catalog_hook_loads_all_governed_registries() -> None:
|
|
hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
|
|
|
|
assert "datasetsApi.listThematicRasterProducts" in hook
|
|
assert "datasetsApi.listDhmvProducts" in hook
|
|
assert "datasetsApi.listFloodHazardProducts" in hook
|
|
assert "datasetsApi.listGrbProducts" in hook
|
|
assert "Promise.all([" in hook
|
|
|
|
|
|
def test_map_selection_can_acquire_dhmv_and_flood_hazard_products() -> None:
|
|
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
|
|
|
for acquisition_kind in (
|
|
"'thematic_raster'",
|
|
"'dhmv'",
|
|
"'flood_hazard'",
|
|
"'grb'",
|
|
"'official_vector'",
|
|
"'bathymetry_profiles'",
|
|
):
|
|
assert acquisition_kind in selection_hook
|
|
assert "datasetsApi.acquireDhmv" in selection_hook
|
|
assert "datasetsApi.acquireFloodHazard" in selection_hook
|
|
assert "datasetsApi.acquireThematicRaster" in selection_hook
|
|
assert 'aria-label="Hoogtemodel"' in workspace
|
|
assert 'aria-label="Overstromingsscenario"' in workspace
|
|
assert "product.display_name" in workspace
|
|
assert "DTM meet het maaiveld; DSM bevat ook gebouwen en vegetatie." in workspace
|
|
assert "geen actuele waterstand" in workspace
|
|
|
|
|
|
def test_default_flood_hazard_product_exists_in_the_governed_registry() -> None:
|
|
request = FloodHazardAcquireRequest(
|
|
bbox=VectorSelectionBBox(min_x=5.0, min_y=51.0, max_x=5.01, max_y=51.01),
|
|
)
|
|
|
|
assert request.product_key == "pluviaal_current_t100"
|