from pathlib import Path from tests.frontend_contract import read_feature ROOT = Path(__file__).resolve().parents[2] def test_dataset_panel_exposes_map_and_export_quick_actions() -> None: panel = read_feature("datasets") assert "selectedDatasetId" in panel assert "dataset-card-active" in panel assert "onOpenDatasetInMap" in panel assert "onOpenDatasetExport" in panel assert "Open op kaart" in panel assert "Downloaden" in panel assert "disabled={!(dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson')}" in panel def test_data_workspace_keeps_catalog_wide_enough_for_populated_state() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") assert ".workspace-grid-data {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}" in css assert ".workspace-grid-data > section:nth-child(3)" in css assert "grid-column: 1 / -1" in css assert ".dataset-card .button-row" in css def test_shell_preserves_workspace_width_on_standard_desktop_viewports() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") app = read_feature("shell") assert "grid-template-columns: 12.5rem minmax(0, 1fr) 21rem" in css assert "@media (max-width: 1360px)" in css assert ".workbench-inspector {\n grid-column: 1 / -1;" in css assert "height: auto;" in css assert "workbenchMainRef.current?.scrollTo({ top: 0, left: 0 })" in app assert "}, [activeWorkspace])" in app def test_app_wires_dataset_quick_actions_to_existing_workspaces() -> None: app = read_feature("shell") assert "const openDatasetInMap = (dataset: DatasetCreateResponse) => {" in app assert "loadDatasetDetails(selectedProjectId, dataset)" in app assert "setMapLayerVisible(true)" in app assert "setActiveWorkspace('map')" in app assert "const openDatasetExport = (dataset: DatasetCreateResponse) => {" in app assert "setActiveWorkspace('exports')" in app assert "selectedDatasetId={selectedDatasetId}" in app assert "onOpenDatasetInMap={openDatasetInMap}" in app assert "onOpenDatasetExport={openDatasetExport}" in app def test_inspector_exposes_navigation_actions_without_api_calls() -> None: inspector = ( ROOT / "frontend" / "src" / "components" / "inspector" / "WorkbenchInspector.tsx" ).read_text(encoding="utf-8") assert "onOpenDataWorkspace" in inspector assert "onOpenMapWorkspace" in inspector assert "onOpenQualityWorkspace" in inspector assert "onOpenExportsWorkspace" in inspector assert "onOpenAiWorkspace" in inspector assert "Gegevenscatalogus" in inspector assert "Kaartlaag" in inspector assert "Kwaliteit openen" in inspector assert "Downloads openen" in inspector assert "Beeldanalyse openen" in inspector assert "fetch(" not in inspector