"""Tests for dedicated push-progress WebSocket channel.""" import pytest def test_sync_progress_uses_sync_dispatch(monkeypatch): """broadcast_sync_progress must not publish to the alert channel.""" from server.api import websocket as ws calls: list[tuple[str, dict]] = [] async def capture_sync(msg): calls.append(("sync", msg)) async def capture_alert(msg): calls.append(("alert", msg)) monkeypatch.setattr(ws, "_dispatch_sync_message", capture_sync) monkeypatch.setattr(ws, "_dispatch_ws_message", capture_alert) import asyncio asyncio.run( ws.broadcast_sync_progress( batch_id="b1", server_id=1, server_name="srv", status="running", completed=0, failed=0, total=1, ), ) assert len(calls) == 1 assert calls[0][0] == "sync" assert calls[0][1]["type"] == "sync_progress" assert calls[0][1]["batch_id"] == "b1" def test_ws_sync_path_is_public(): from server.api.auth_jwt import _is_public_path assert _is_public_path("/ws/sync") is True