From 6f7dd61023e7148b13768fc77f321058f9834ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexis=20M=C3=A9taireau?= Date: Wed, 15 May 2024 14:31:53 +0200 Subject: [PATCH] test(sync): ensure polygon drag-n-drop is synced --- umap/tests/integration/conftest.py | 5 ++-- umap/tests/integration/test_websocket_sync.py | 23 +++++++++++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/umap/tests/integration/conftest.py b/umap/tests/integration/conftest.py index 386e7a97..06367086 100644 --- a/umap/tests/integration/conftest.py +++ b/umap/tests/integration/conftest.py @@ -47,10 +47,9 @@ def websocket_server(xprocess): # env = {"UMAP_SETTINGS": settings_path} pattern = "Waiting for connections*" args = ["python", "-m", "umap.ws"] - timeout = 3 + timeout = 1 terminate_on_interrupt = True - logfile = xprocess.ensure("websocket_server", Starter) - print(logfile) + xprocess.ensure("websocket_server", Starter) yield xprocess.getinfo("websocket_server").terminate() diff --git a/umap/tests/integration/test_websocket_sync.py b/umap/tests/integration/test_websocket_sync.py index f369bf26..05998f26 100644 --- a/umap/tests/integration/test_websocket_sync.py +++ b/umap/tests/integration/test_websocket_sync.py @@ -118,11 +118,11 @@ def test_websocket_connection_can_sync_polygons( a_polygon_bbox_t1 = a_polygon.bounding_box() assert b_polygon_bbox_t1 == a_polygon_bbox_t1 - peerB.locator("path").click() + b_polygon.click() peerB.get_by_role("link", name="Toggle edit mode (⇧+Click)").click() edited_vertex = peerB.locator("div:nth-child(6)").first - edited_vertex.drag_to(b_map_el, target_position={"x": 250, "y": 250}) + edited_vertex.drag_to(b_map_el, target_position={"x": 233, "y": 126}) peerB.keyboard.press("Escape") b_polygon_bbox_t2 = b_polygon.bounding_box() @@ -130,3 +130,22 @@ def test_websocket_connection_can_sync_polygons( assert b_polygon_bbox_t2 != b_polygon_bbox_t1 assert b_polygon_bbox_t2 == a_polygon_bbox_t2 + + # Move the polygon on peer B and check it moved also on peer A + b_polygon.click() + peerB.get_by_role("link", name="Toggle edit mode (⇧+Click)").click() + + b_polygon.drag_to(b_map_el, target_position={"x": 400, "y": 400}) + peerB.keyboard.press("Escape") + b_polygon_bbox_t3 = b_polygon.bounding_box() + a_polygon_bbox_t3 = a_polygon.bounding_box() + + assert b_polygon_bbox_t3 != b_polygon_bbox_t2 + assert b_polygon_bbox_t3 == a_polygon_bbox_t3 + + # Delete a polygon from peer A and check it's been deleted on peer B + a_polygon.click(button="right") + peerA.on("dialog", lambda dialog: dialog.accept()) + peerA.get_by_role("link", name="Delete this feature").click() + expect(a_polygons).to_have_count(0) + expect(b_polygons).to_have_count(0)