from __future__ import annotations from starlette.testclient import TestClient from aios_cockpit.app import app client = TestClient(app) def test_root_redirects_to_workbench() -> None: response = client.get("/", follow_redirects=False) assert response.status_code == 303 assert response.headers["location"] == "/workbench" def test_core_pages_render_html() -> None: checks = [ ("/workbench", "AIOS Workbench"), ("/dashboard", "AIOS Cockpit"), ("/projects/AIOS-Cockpit", "Project State"), ("/handoffs", "Saved Handoffs"), ] for path, marker in checks: response = client.get(path) assert response.status_code == 200, path assert "text/html" in response.headers["content-type"] assert marker in response.text def test_workbench_missing_handoff_reference_renders_warning() -> None: response = client.get( "/workbench?project=AIOS-Cockpit&task=20260421T150544Z-v3-smoke-task" ) assert response.status_code == 200 assert "AIOS Workbench" in response.text if "20260421T150544Z-v3-smoke-task" in response.text: assert "Missing handoff artifact" in response.text