Files
chat_grid/server/tests/test_models.py

39 lines
1.4 KiB
Python
Raw Normal View History

2026-02-20 08:16:43 -05:00
from pydantic import ValidationError, TypeAdapter
from app.models import ClientPacket
def test_update_position_validates() -> None:
adapter = TypeAdapter(ClientPacket)
packet = adapter.validate_python({"type": "update_position", "x": 10, "y": 12})
assert packet.type == "update_position"
def test_unknown_type_rejected() -> None:
adapter = TypeAdapter(ClientPacket)
try:
adapter.validate_python({"type": "unknown"})
except ValidationError:
return
assert False, "validation should fail"
def test_item_add_accepts_piano_type() -> None:
adapter = TypeAdapter(ClientPacket)
packet = adapter.validate_python({"type": "item_add", "itemType": "piano"})
assert packet.type == "item_add"
def test_item_piano_recording_packet_validates() -> None:
adapter = TypeAdapter(ClientPacket)
packet = adapter.validate_python({"type": "item_piano_recording", "itemId": "p1", "action": "toggle_record"})
assert packet.type == "item_piano_recording"
stop_packet = adapter.validate_python({"type": "item_piano_recording", "itemId": "p1", "action": "stop_record"})
assert stop_packet.type == "item_piano_recording"
def test_item_transfer_packet_validates() -> None:
adapter = TypeAdapter(ClientPacket)
packet = adapter.validate_python({"type": "item_transfer", "itemId": "i1", "targetId": "u2"})
assert packet.type == "item_transfer"