This commit is contained in:
51
tests/test_grid.py
Normal file
51
tests/test_grid.py
Normal file
@@ -0,0 +1,51 @@
|
||||
from server.config import ServerSettings
|
||||
from server.grid import GridManager
|
||||
from server.models import ActionPayload, ActionType, GridInitRequest
|
||||
|
||||
|
||||
def test_grid_creation_respects_dimensions(default_grid_request):
|
||||
settings = ServerSettings(grid_rows=2, grid_cols=2)
|
||||
manager = GridManager(settings)
|
||||
request = GridInitRequest(**default_grid_request)
|
||||
grid = manager.create_grid(request)
|
||||
|
||||
descriptor = grid.describe()
|
||||
assert descriptor.grid_id
|
||||
assert descriptor.rows == 3
|
||||
assert descriptor.columns == 3
|
||||
assert len(descriptor.cells) == 9
|
||||
assert descriptor.metadata.get("width") == 640
|
||||
assert descriptor.metadata.get("height") == 480
|
||||
|
||||
|
||||
def test_grid_action_records_history(default_grid_request):
|
||||
manager = GridManager(ServerSettings())
|
||||
request = GridInitRequest(**default_grid_request)
|
||||
grid = manager.create_grid(request)
|
||||
descriptor = grid.describe()
|
||||
target_cell = descriptor.cells[0].cell_id
|
||||
|
||||
payload = ActionPayload(
|
||||
grid_id=descriptor.grid_id,
|
||||
action=ActionType.CLICK,
|
||||
target_cell=target_cell,
|
||||
comment="click test",
|
||||
)
|
||||
result = grid.apply_action(payload)
|
||||
|
||||
assert result.success
|
||||
assert result.coordinates is not None
|
||||
assert grid.action_history[-1]["coordinates"] == result.coordinates
|
||||
|
||||
|
||||
def test_manager_get_grid_missing(default_grid_request):
|
||||
manager = GridManager(ServerSettings())
|
||||
request = GridInitRequest(**default_grid_request)
|
||||
_ = manager.create_grid(request)
|
||||
|
||||
try:
|
||||
manager.get_grid("does-not-exist")
|
||||
found = True
|
||||
except KeyError:
|
||||
found = False
|
||||
assert not found
|
||||
Reference in New Issue
Block a user