Files
geointel/backend/tests/test_sprint200_temporal_explorer_handoff.py
T

48 lines
2.0 KiB
Python

from pathlib import Path
from tests.frontend_contract import assert_wired, read_map_workspace
ROOT = Path(__file__).resolve().parents[2]
def read(path: str) -> str:
return (ROOT / path).read_text(encoding="utf-8")
def test_evolution_mode_falls_back_to_an_available_series() -> None:
workspace = read_map_workspace()
assert "themeTemporalSeriesMap" in workspace
assert "availableEvolutionThemes[0]" in workspace
assert "activeTemporalSeriesGroups.length > 0" in workspace
assert "setActiveThemeId(fallbackTheme.id)" in workspace
assert "onOpenDatasetInMap(fallbackDataset)" in workspace
def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None:
workspace = read_map_workspace()
assert "analysisMode === 'current'" in workspace
# Theme availability depends on a dataset or an on-demand product;
# evolution additionally requires a time series. Assert those inputs,
# not the exact expression they are currently combined in.
assert_wired(workspace, "onDemandProduct", "evolutionAvailable")
assert "meetmomenten" in workspace
assert "Tijdreeks" in workspace
# Themes without a time series must be labelled as current-state only.
# Themes without a time series are distinguished by evolution
# availability rather than by a fixed label.
assert_wired(workspace, "evolutionAvailable", "meetmomenten")
assert "Geen tijdreeks beschikbaar" not in workspace
def test_regional_time_series_remain_real_persisted_sources() -> None:
regional_operator = read("scripts/provision_regional_timeseries.py")
temporal_service = read("backend/app/services/temporal_analysis_service.py")
assert "provision_mol_population_history.py" in regional_operator
assert "provision_official_landuse_timeseries.py" in regional_operator
assert "TemporalAnalysisService._get_temporal_dataset" in temporal_service
assert "VectorFeatureService.summarize_features_by_bbox" in temporal_service
assert "object_changes=object_changes" in temporal_service