File size: 1,191 Bytes
1aee5ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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