import pathlib ROOT=pathlib.Path(__file__).resolve().parents[1] def test_version_401(): assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1" def test_chat_has_independent_heartbeat_wrapper(): route=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert "async def _stream_with_heartbeat" in route assert 'yield ": heartbeat\\n\\n"' in route assert "heartbeat_seconds=8.0" in route assert '"Cache-Control":"no-cache, no-transform"' in route assert '"Connection":"keep-alive"' in route def test_stream_errors_are_sent_as_sse(): route=(ROOT/"routes"/"chat.py").read_text(encoding="utf-8") assert '"event: error\\ndata: "' in route assert "json.dumps" in route def test_frontend_distinguishes_transport_drop(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert "浏览器与服务端的流式连接断开" in js assert "流式连接已中断" in js