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,67 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from pathlib import Path
|
||||
from tests.frontend_contract import read_feature
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def test_app_uses_quality_and_map_presentational_components() -> None:
|
||||
app = read_feature("shell")
|
||||
|
||||
assert "from './components/quality/QualityResultsPanel'" in app
|
||||
assert "from './components/map/MapWorkspace'" in app
|
||||
assert "<QualityResultsPanel" in app
|
||||
assert "<MapWorkspace" in app
|
||||
assert "<h2>QA/QC Results</h2>" not in app
|
||||
assert "<h2>Map workspace</h2>" not in app
|
||||
assert "<GeoMap" not in app
|
||||
|
||||
|
||||
def test_map_workspace_lives_in_task_based_workbench_shell() -> None:
|
||||
app = read_feature("shell")
|
||||
styles = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8")
|
||||
|
||||
assert "activeWorkspace === 'map'" in app
|
||||
assert app.index("activeWorkspace === 'map'") < app.index("<MapWorkspace")
|
||||
assert "'workbench-main workbench-main-map' : 'workbench-main'" in app
|
||||
assert 'className="workbench-inspector"' in app
|
||||
assert ".workbench-layout" in styles
|
||||
assert ".workbench-sidebar" in styles
|
||||
assert ".workbench-main" in styles
|
||||
assert ".workbench-inspector" in styles
|
||||
|
||||
|
||||
def test_quality_results_panel_owns_persisted_quality_check_markup() -> None:
|
||||
quality_panel = (
|
||||
ROOT / "frontend" / "src" / "components" / "quality" / "QualityResultsPanel.tsx"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "QualityCheckRead" in quality_panel
|
||||
assert "Kwaliteitsresultaten vernieuwen" in quality_panel
|
||||
assert "Nog geen bewaarde kwaliteitsresultaten" in quality_panel
|
||||
assert "check.metrics.map" in quality_panel
|
||||
assert "fetch(" not in quality_panel
|
||||
assert "api" not in quality_panel.lower()
|
||||
|
||||
|
||||
def test_map_workspace_owns_map_controls_and_feature_inspector_markup() -> None:
|
||||
map_workspace = read_feature("map_workspace")
|
||||
|
||||
assert "GeoMap" in map_workspace
|
||||
assert "map-toolbar" in map_workspace
|
||||
assert "Area" in map_workspace
|
||||
assert "Werkgebied" in map_workspace
|
||||
assert "Actieve kaartlaag" in map_workspace
|
||||
assert "Objectinspectie" in map_workspace
|
||||
assert "onFeatureSelect={onSelectMapFeature}" in map_workspace
|
||||
# The markup layer owns interaction, never transport. Scoped to the
|
||||
# presentational modules because the workspace's hooks do perform
|
||||
# transport, by design. A bare "api" substring also matches
|
||||
# useMapImageOverlays, so name what is actually forbidden.
|
||||
presentation = read_feature("map_workspace_presentation")
|
||||
assert "fetch(" not in presentation
|
||||
assert "services/api" not in presentation
|
||||
assert not re.search(r"\w*[Aa]pi\.(get|post|put|delete)\(", presentation)
|
||||
Reference in New Issue
Block a user