"""Tests for IPC message types.""" from voice_to_notes.ipc.messages import ( IPCMessage, error_message, progress_message, ready_message, ) def test_ipc_message_to_dict(): msg = IPCMessage(id="req-1", type="ping", payload={"key": "value"}) d = msg.to_dict() assert d == {"id": "req-1", "type": "ping", "payload": {"key": "value"}} def test_ipc_message_from_dict(): data = {"id": "req-1", "type": "ping", "payload": {"key": "value"}} msg = IPCMessage.from_dict(data) assert msg.id == "req-1" assert msg.type == "ping" assert msg.payload == {"key": "value"} def test_ipc_message_from_dict_missing_fields(): msg = IPCMessage.from_dict({}) assert msg.id == "" assert msg.type == "" assert msg.payload == {} def test_progress_message(): msg = progress_message("req-1", 50, "transcribing", "Processing...") assert msg.type == "progress" assert msg.payload["percent"] == 50 assert msg.payload["stage"] == "transcribing" def test_error_message(): msg = error_message("req-1", "not_found", "File not found") assert msg.type == "error" assert msg.payload["code"] == "not_found" assert msg.payload["message"] == "File not found" def test_ready_message(): msg = ready_message() assert msg.type == "ready" assert msg.id == "system" assert "version" in msg.payload