umap/umap/tests/integration/test_caption.py
Yohan Boniface 13735a5739 chore: use our own Team model
We suppose we'll quickly want more than a name, like a description
or a logo_url, and maybe a access_status or permissions…
2024-08-30 15:53:18 +02:00

47 lines
1.8 KiB
Python

import re
import pytest
from playwright.sync_api import expect
from ..base import DataLayerFactory
pytestmark = pytest.mark.django_db
def test_caption(live_server, page, map):
map.settings["properties"]["onLoadPanel"] = "caption"
map.save()
basic = DataLayerFactory(map=map, name="Basic layer")
non_loaded = DataLayerFactory(
map=map, name="Non loaded", settings={"displayOnLoad": False}
)
hidden = DataLayerFactory(map=map, name="Hidden", settings={"inCaption": False})
page.goto(f"{live_server.url}{map.get_absolute_url()}")
panel = page.locator(".panel.left.on")
expect(panel).to_have_class(re.compile(".*condensed.*"))
expect(panel.locator(".umap-caption")).to_be_visible()
expect(panel.locator(".datalayer-legend").get_by_text(basic.name)).to_be_visible()
expect(
panel.locator(".datalayer-legend .off").get_by_text(non_loaded.name)
).to_be_visible()
expect(panel.locator(".datalayer-legend").get_by_text(hidden.name)).to_be_hidden()
def test_caption_should_display_owner_as_author(live_server, page, map):
map.settings["properties"]["onLoadPanel"] = "caption"
map.save()
page.goto(f"{live_server.url}{map.get_absolute_url()}")
panel = page.locator(".panel.left.on")
expect(panel).to_be_visible()
expect(panel.get_by_text("By Gabriel")).to_be_visible()
def test_caption_should_display_team_as_author(live_server, page, map, team):
map.settings["properties"]["onLoadPanel"] = "caption"
map.team = team
map.save()
page.goto(f"{live_server.url}{map.get_absolute_url()}")
panel = page.locator(".panel.left.on")
expect(panel).to_be_visible()
expect(panel.get_by_text("By Gabriel")).to_be_hidden()
expect(panel.get_by_text("By Awesome Team")).to_be_visible()