from app.api.server import chat, health, resolve_permission, resolve_secret from app.core.permission_resolution import PermissionResolutionRequest, SecretResolutionRequest from app.core.contracts import UserTask def test_health_handler() -> None: assert health() == {"status": "ok"} def test_chat_handler_returns_runtime_events() -> None: body = chat(UserTask(input="hello from handler test")) assert body["status"] == "completed" assert body["events"][0]["type"] == "task_received" def test_resolve_permission_handler_allows_completion() -> None: initial = chat(UserTask(input="запусти pwd")) if initial["status"] == "awaiting_permission": body = resolve_permission( PermissionResolutionRequest(task_id=initial["task_id"], decision="allow_once") ) assert body["status"] in {"completed", "failed"} def test_resolve_secret_handler_requires_pending_request() -> None: body = resolve_secret(SecretResolutionRequest(task_id="missing", secret="x")) assert body["status"] == "failed"