Add integrations tests covering basic line creation
This commit is contained in:
parent
60c002f94a
commit
64e90bb4c1
1 changed files with 69 additions and 0 deletions
69
umap/tests/integration/test_drawing.py
Normal file
69
umap/tests/integration/test_drawing.py
Normal file
|
@ -0,0 +1,69 @@
|
|||
from playwright.sync_api import expect
|
||||
|
||||
|
||||
def test_draw_polyline(page, live_server, tilelayer):
|
||||
page.goto(f"{live_server.url}/en/map/new/")
|
||||
|
||||
# Click on the Draw a line button on a new map.
|
||||
create_line = page.locator(".leaflet-control-toolbar ").get_by_title(
|
||||
"Draw a polyline (Ctrl+L)"
|
||||
)
|
||||
create_line.click()
|
||||
|
||||
# Check no line is present by default.
|
||||
# We target with the color, because there is also the drawing line guide (dash-array)
|
||||
# around
|
||||
lines = page.locator(".leaflet-overlay-pane path[stroke='DarkBlue']")
|
||||
guide = page.locator(".leaflet-overlay-pane > svg > g > path")
|
||||
expect(lines).to_have_count(0)
|
||||
expect(guide).to_have_count(0)
|
||||
|
||||
# Click on the map, it will create a line.
|
||||
map = page.locator("#map")
|
||||
map.click(position={"x": 200, "y": 200})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
map.click(position={"x": 100, "y": 200})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
map.click(position={"x": 100, "y": 100})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
# Click again to finish
|
||||
map.click(position={"x": 100, "y": 100})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(0)
|
||||
|
||||
|
||||
def test_clicking_esc_should_finish_line(page, live_server, tilelayer):
|
||||
page.goto(f"{live_server.url}/en/map/new/")
|
||||
|
||||
# Click on the Draw a line button on a new map.
|
||||
create_line = page.locator(".leaflet-control-toolbar ").get_by_title(
|
||||
"Draw a polyline (Ctrl+L)"
|
||||
)
|
||||
create_line.click()
|
||||
|
||||
# Check no line is present by default.
|
||||
# We target with the color, because there is also the drawing line guide (dash-array)
|
||||
# around
|
||||
lines = page.locator(".leaflet-overlay-pane path[stroke='DarkBlue']")
|
||||
guide = page.locator(".leaflet-overlay-pane > svg > g > path")
|
||||
expect(lines).to_have_count(0)
|
||||
expect(guide).to_have_count(0)
|
||||
|
||||
# Click on the map, it will create a line.
|
||||
map = page.locator("#map")
|
||||
map.click(position={"x": 200, "y": 200})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
map.click(position={"x": 100, "y": 200})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
map.click(position={"x": 100, "y": 100})
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(1)
|
||||
# Click ESC to finish
|
||||
page.keyboard.press("Escape")
|
||||
expect(lines).to_have_count(1)
|
||||
expect(guide).to_have_count(0)
|
Loading…
Reference in a new issue