import pytest from datetime import datetime, timedelta, timezone from unittest.mock import AsyncMock, patch from app.models.terminal_session import TerminalSession, SESSION_STATUS_ACTIVE class TestTerminalConnectPage: @pytest.mark.asyncio async def test_connect_page_renders_html(self, client, db_session): now = datetime.now(timezone.utc) sess = TerminalSession( id="s" * 64, host_id="host-1", host_name="test-host", host_ip="127.0.0.1", user_id="user-1", username="testuser", token_hash="x" * 64, ttyd_port=7680, ttyd_pid=123, mode="embedded", status=SESSION_STATUS_ACTIVE, created_at=now, last_seen_at=now, expires_at=now + timedelta(minutes=10), ) db_session.add(sess) await db_session.commit() with patch("app.services.terminal_service.terminal_service.verify_token", return_value=True), \ patch("app.services.terminal_service.terminal_service.is_session_process_alive", new=AsyncMock(return_value=True)): resp = await client.get(f"/api/terminal/connect/{sess.id}?token=dummy") assert resp.status_code == 200 assert "