def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -> None: root = Path(__file__).parents[2] focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8") workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8") coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8") map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8") assert "Belgium and North Sea Workbench" in focus assert "nationalProject" in workspace_hook assert "return nationalProject.id" in workspace_hook assert "NATIONAL_WORKSPACE_REGION" in workspace_hook assert "externalApi.resolveCoverage" in coverage_hook assert "coverage.outside_supported_scope" in map_workspace assert "coverageStatusLabel" in map_workspace > assert "coverageSelectionAvailable" in map_workspace E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_rc4_national_coverage.py:432: AssertionErrordef test_runtime_configuration_is_validated_before_container_replacement() -> None: run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8") validation_index = run_script.index("validate_runtime_config") > replacement_index = run_script.index("docker compose down") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E ValueError: substring not found backend\tests\test_rc5_release_deployment.py:65: ValueErrordef test_rc9_loading_and_accessibility_states_are_explicit() -> None: app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") map_workspace = ( ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx" ).read_text(encoding="utf-8") geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text( encoding="utf-8" ) assert "workspaceDataLoading" in app assert 'role="status" aria-live="polite"' in app assert "Databronnen worden gecontroleerd" in map_workspace > assert "Beschikbaarheid controleren" in map_workspace E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_rc9_ux_release_contract.py:33: AssertionErrordef test_all_in_one_deploy_embeds_immutable_build_identity() -> None: dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8") release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8") deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8") deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8") assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile > assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n' backend\tests\test_rc_runtime_observability.py:47: AssertionErrordef test_frontend_exposes_map_bbox_selection_contracts() -> None: api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8") map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8") geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8") app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8") theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8") assert "selectVectorFeatures" in api_client assert "Area selection" in map_workspace assert "Teken rechthoek" in map_workspace assert "Objecten in gebied ophalen" in map_workspace assert "Gebiedsdownload bewaren" in map_workspace assert "bboxSelectionMode" in geomap assert "selection-bbox" in geomap assert "selection-result" in geomap assert "useMapSelectionExtract" in app assert "area_id: areaId" in extract_hook assert "area_id: areaId" in theme_hook > assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionErrordef test_frontend_declares_national_scope_as_primary_operating_focus() -> None: focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text( encoding="utf-8" ) project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text( encoding="utf-8" ) map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text( encoding="utf-8" ) navigation = ( ROOT / "frontend" / "src" / "components" / "shell" / "WorkbenchNavigation.tsx" ).read_text(encoding="utf-8") assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus assert "NATIONAL_MAP_CENTER" in focus assert "return nationalProject.id" in project_hook assert "hasMappedAnalysisContext(data)" in project_hook assert "dataset.dataset_type === 'raster'" in project_hook assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook assert "center: NATIONAL_MAP_CENTER" in map_source assert "zoom: NATIONAL_MAP_ZOOM" in map_source assert "GeoIntel" in navigation > assert "Atlas Workbench" in navigation E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n </div>\n ))}\n </nav>\n <ItWorxSignature />\n </aside>\n )\n}\n' backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionErrordef test_product_docs_record_national_scope_and_mol_regression_focus() -> None: readme = (ROOT / "README.md").read_text(encoding="utf-8") vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8") > assert "Belgium and the Belgian North Sea" in readme E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n<p align="center">\n <img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo">\n</p...\n\nActieve mijlpaal: **v1.0.0 — Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n' backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionErrordef test_map_first_explorer_is_the_default_product_flow() -> None: app = read("frontend/src/App.tsx") workspace = read("frontend/src/components/map/MapWorkspace.tsx") assert "useState<WorkspaceKey>('map')" in app assert "Gebied analyseren" in workspace > assert "<h3>Focus op de kaart <small>optioneel</small></h3>" in workspace E assert '<h3>Focus op de kaart <small>optioneel</small></h3>' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionErrordef test_map_rectangle_drag_is_wired_to_automatic_analysis() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") geomap = read("frontend/src/components/GeoMap.tsx") styles = read("frontend/src/styles/app.css") assert "onMapBboxPreview={handleMapBboxPreview}" in workspace assert "onMapBboxSelect={handleMapBboxSelect}" in workspace assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace assert "const areaIdForSelection" in workspace assert "bbox && selectedMapArea ? selectedMapArea.id : undefined" in workspace > assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionErrordef test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") assert "analysisMode === 'current'" in workspace > assert "Boolean(dataset || onDemandProduct)" in workspace E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionErrordef test_regional_map_uses_logical_partition_groups_and_exact_analysis() -> None: app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8") workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8") hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8") api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8") assert "regionalScopeSelected" in workspace assert "rasterPartitionsForDataset" in workspace assert "imageOverlays={activeImageOverlays}" in workspace > assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionErrordef test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -> None: app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8") focus = ( ROOT / "frontend" / "src" / "config" / "primaryFocus.ts" ).read_text(encoding="utf-8") map_workspace = ( ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx" ).read_text(encoding="utf-8") theme_hook = ( ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts" ).read_text(encoding="utf-8") dataset_api = ( ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts" ).read_text(encoding="utf-8") assert "isPartitionedBathymetry" in map_workspace assert "regionalPartitionedThemeActive" in map_workspace > assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionErrordef test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts") selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts") api = read("frontend/src/services/api/datasets.ts") assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace assert "new Map<DataThemeId, OnDemandMapProduct>" in workspace > assert "'Automatisch'" in workspace E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionErrordef test_selection_reads_and_bounded_acquires_all_relevant_themes() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") app = read("frontend/src/App.tsx") selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts") > assert "for (const theme of [activeTheme])" in workspace E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionErrordef test_regional_on_demand_sources_require_a_bounded_drawn_selection() -> None: workspace = read("frontend/src/components/map/MapWorkspace.tsx") assert "regionalOnDemandThemeActive" in workspace > assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionErrordef test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -> None: selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8") catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8") workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8") contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8") assert "datasetsApi.acquireGrb" in selection_hook assert "datasetsApi.listGrbProducts" in catalog_hook assert "officialMapProducts.grb" in workspace assert "result[product.key] = null" in workspace assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace assert "onSetContextLayerLabel" in workspace > assert "'Automatisch'" in workspace E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n" backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionErrordef test_app_entrypoint_has_clean_encoding_and_react_imports() -> None: app_path = ROOT / "frontend" / "src" / "App.tsx" app_bytes = app_path.read_bytes() app = app_path.read_text(encoding="utf-8") assert not app_bytes.startswith(b"\xef\xbb\xbf") assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app assert "FormEvent" not in app > assert app.count("useEffect(") == 1 E assert 3 == 1 E + where 3 = <built-in method count of str object at 0x000001FED98D8C30>('useEffect(') E + where <built-in method count of str object at 0x000001FED98D8C30> = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n />\n )\n}\n\nexport default App\n".count backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError