import sys

# Absolute path to src
src_path = "/home/ubuntu/timmy-time/Timmy-time-dashboard/src"
if src_path not in sys.path:
    sys.path.insert(0, src_path)

from fastapi.testclient import TestClient  # noqa: E402

try:
    from dashboard.app import app  # noqa: E402

    print("✓ Successfully imported dashboard.app")
except ImportError as e:
    print(f"✗ Failed to import dashboard.app: {e}")
    sys.exit(1)

client = TestClient(app)


def test_v1_status():
    response = client.get("/api/v1/status")
    assert response.status_code == 200
    data = response.json()
    assert "timmy" in data
    assert "model" in data
    assert "uptime" in data


def test_v1_chat_history():
    response = client.get("/api/v1/chat/history")
    assert response.status_code == 200
    data = response.json()
    assert "messages" in data


def test_v1_upload_fail():
    # Test without file
    response = client.post("/api/v1/upload")
    assert response.status_code == 422  # Unprocessable Entity (missing file)


if __name__ == "__main__":
    print("Running API v1 tests...")
    try:
        test_v1_status()
        print("✓ Status test passed")
        test_v1_chat_history()
        print("✓ History test passed")
        test_v1_upload_fail()
        print("✓ Upload failure test passed")
        print("All tests passed!")
    except Exception as e:
        print(f"Test failed: {e}")
        sys.exit(1)
