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"