Initial public release
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from uuid import uuid4
|
||||
|
||||
from geoalchemy2.shape import from_shape
|
||||
from shapely.geometry import MultiPolygon, Polygon
|
||||
|
||||
from app.models import Area
|
||||
from app.services.area_service import AreaService
|
||||
from tests.frontend_contract import read_feature
|
||||
|
||||
|
||||
def test_area_serializer_exposes_geojson_geometry_for_map_overlay() -> None:
|
||||
project_id = uuid4()
|
||||
area = Area(
|
||||
id=uuid4(),
|
||||
project_id=project_id,
|
||||
name="Map AOI",
|
||||
original_crs="EPSG:4326",
|
||||
area_m2=100.0,
|
||||
geometry=from_shape(
|
||||
MultiPolygon(
|
||||
[
|
||||
Polygon(
|
||||
[
|
||||
(4.35, 51.28),
|
||||
(4.36, 51.28),
|
||||
(4.36, 51.29),
|
||||
(4.35, 51.29),
|
||||
(4.35, 51.28),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
srid=4326,
|
||||
),
|
||||
)
|
||||
|
||||
payload = AreaService.serialize_area(area)
|
||||
|
||||
assert payload["id"] == area.id
|
||||
assert payload["project_id"] == project_id
|
||||
assert payload["geometry"]["type"] == "MultiPolygon"
|
||||
assert payload["geometry"]["coordinates"][0][0][0] == (4.35, 51.28)
|
||||
|
||||
|
||||
def test_frontend_wires_selected_area_map_overlay_contract() -> None:
|
||||
root = __import__("pathlib").Path(__file__).resolve().parents[2]
|
||||
app = read_feature("shell")
|
||||
geomap = (root / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
|
||||
map_workspace = read_feature("map_workspace")
|
||||
area_panel = (root / "frontend" / "src" / "components" / "project" / "AreaPanel.tsx").read_text(encoding="utf-8")
|
||||
|
||||
assert "selectedMapAreaId" in app
|
||||
assert "areaFeatureCollection" in app
|
||||
assert "areaFeatureCollection={areaFeatureCollection}" in app
|
||||
assert "areaData={areaFeatureCollection}" in map_workspace
|
||||
assert "Werkgebied" in map_workspace
|
||||
assert "area-fill" in geomap
|
||||
assert "area-line" in geomap
|
||||
assert "onSelectMapArea" in area_panel
|
||||
assert "Toon op kaart" in area_panel
|
||||
Reference in New Issue
Block a user