Files
geointel/backend/tests/test_sprint88_ai_lab_density.py
T
NuklearRabbit 7fbb42c9ef
Managed validation / full (pull_request) Successful in 18s
GeoIntel release gates / Compile, test, contracts and builds (pull_request) Successful in 2m56s
GeoIntel release gates / Python and npm vulnerability policy (pull_request) Successful in 24s
GeoIntel release gates / GIS image, SBOM and container scan (pull_request) Failing after 54s
test: align source contracts with modular workbench
2026-08-29 01:52:08 +02:00

79 lines
3.2 KiB
Python

from __future__ import annotations
from pathlib import Path
from tests.frontend_contract import read_feature
ROOT = Path(__file__).resolve().parents[2]
def test_detection_lab_exposes_structured_surfaces() -> None:
lab = "\n".join(
(
(ROOT / "frontend" / "src" / "components" / "detection" / "DetectionLab.tsx").read_text(encoding="utf-8"),
(ROOT / "frontend" / "src" / "components" / "detection" / "DetectionModelManagement.tsx").read_text(encoding="utf-8"),
)
)
assert 'className="workspace-panel ai-lab-shell detection-lab-shell"' in lab
assert 'className="ai-lab-model-surface"' in lab
assert 'aria-label="Technische modelmogelijkheden"' in lab
assert 'className="ai-lab-run-surface"' in lab
assert 'aria-label="Gebouwdetectie starten"' in lab
assert 'className="ai-lab-state-stack"' in lab
assert 'className="ai-lab-results-surface"' in lab
assert 'aria-label="Resultaten van de beeldanalyse"' in lab
assert 'className="ai-lab-qa-surface"' in lab
assert 'aria-label="Kwaliteitscontrole gebouwdetectie"' in lab
def test_segmentation_lab_exposes_structured_surfaces() -> None:
lab = read_feature("segmentation")
assert 'className="workspace-panel ai-lab-shell segmentation-lab-shell"' in lab
assert 'className="ai-lab-model-surface"' in lab
assert 'aria-label="Technische informatie over segmentatiemodellen"' in lab
assert 'className="ai-lab-run-surface"' in lab
assert 'aria-label="Segmentatie starten"' in lab
assert 'className="ai-lab-state-stack"' in lab
assert 'className="ai-lab-results-surface"' in lab
assert 'aria-label="Segmentatieresultaten"' in lab
assert 'className="ai-lab-qa-surface"' in lab
assert 'aria-label="Kwaliteitscontrole voor segmentatie"' in lab
def test_ai_lab_preserves_existing_detection_and_segmentation_controls() -> None:
detection = read_feature("detection")
segmentation = read_feature("segmentation")
assert "onRunDetection" in detection
assert "onLoadResults" in detection
assert "onRunQa" in detection
assert "detectionTileManifestPath" in detection
assert "{detectionItems.length} objecten geladen" in detection
assert "Vergelijk met referentielaag" in detection
assert "onRunSegmentation" in segmentation
assert "onLoadResults" in segmentation
assert "onRunQa" in segmentation
assert "selectedSegmentationModelConfigured" in segmentation
assert "segmentationItems.length" in segmentation
assert "vlakken geladen" in segmentation
assert "Vergelijk met referentielaag" in segmentation
def test_ai_lab_density_css_contracts() -> None:
css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8")
assert ".ai-lab-shell" in css
assert ".ai-lab-model-surface" in css
assert ".ai-lab-run-surface" in css
assert ".ai-lab-results-surface" in css
assert ".ai-lab-qa-surface" in css
assert ".ai-lab-state-stack" in css
assert ".ai-lab-shell .model-list" in css
assert ".ai-lab-shell .lab-form-grid" in css
assert ".ai-lab-summary-grid" in css
assert "grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));" in css
assert "grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));" in css