Rail_Mind / tests /integration /test_websocket.py
Gaurav711's picture
fix(tests): resolve path error on Linux and clean unused imports
bf4313e
Raw
History Blame Contribute Delete
991 Bytes
"""
Integration test for the WebSocket endpoint at /api/v1/stream/ws.
Verifies:
- The endpoint accepts WebSocket connections.
- It sends JSON data within 10 seconds.
- The payload contains ``agents`` and ``trains`` keys.
"""
import pytest
from starlette.testclient import TestClient
from app.main import app
@pytest.mark.asyncio
async def test_websocket_sends_combined_data():
"""
Connect to /api/v1/stream/ws and verify the first message
contains both 'agents' and 'trains' keys.
"""
client = TestClient(app)
with client.websocket_connect("/api/v1/stream/ws") as ws:
# The server sends a message every 5s; wait up to 10s
data = ws.receive_json(mode="text")
assert isinstance(data, dict), "Payload should be a JSON object"
assert "agents" in data, "Payload must contain 'agents' key"
assert "trains" in data, "Payload must contain 'trains' key"
assert "timestamp" in data, "Payload must contain 'timestamp' key"