from __future__ import annotations from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_overview_exposes_end_to_end_workflow_guidance() -> None: app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") assert 'aria-label="V1 workflow guidance"' in app assert 'className="workflow-guidance-panel"' in app assert 'className="workflow-guidance-steps"' in app assert "workflowGuidanceSteps.map" in app assert "Project & AOI" in app assert "Data" in app assert "Map" in app assert "QA / AI" in app assert "Export" in app def test_workflow_guidance_routes_to_existing_workspaces() -> None: app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8") assert "target: 'data'" in app assert "target: 'map'" in app assert "target: 'analysis'" in app assert "target: 'exports'" in app assert "onOpenAiWorkspace={() => setActiveWorkspace('ai')}" in app assert "onClick={() => setActiveWorkspace(step.target)}" in app def test_workflow_guidance_has_responsive_contracts() -> None: css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") assert ".workflow-guidance-panel" in css assert ".workflow-guidance-steps" in css assert ".workflow-guidance-step" in css assert ".workflow-guidance-step-active" in css assert ".workflow-step-status" in css assert "grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));" in css