30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
"""Frontend E2E tests — GPS badge states."""
|
|
|
|
import pytest
|
|
|
|
|
|
def _login(page):
|
|
"""Helper: login as admin."""
|
|
page.locator("#loginUsername").fill("admin")
|
|
page.locator("#loginPassword").fill("changeme")
|
|
page.locator("button:has-text('Sign In')").click()
|
|
page.wait_for_selector("#loginOverlay", state="hidden", timeout=5000)
|
|
|
|
|
|
@pytest.mark.frontend
|
|
def test_gps_badge_shows_ok_when_geolocation_granted(page, live_server):
|
|
"""With geolocation permission granted, GPS badge shows OK state."""
|
|
_login(page)
|
|
|
|
# Wait for GPS to initialize (initGPS() runs on page load,
|
|
# and with permissions=['geolocation'] set in browser context,
|
|
# navigator.geolocation.getCurrentPosition succeeds immediately)
|
|
gps_badge = page.locator("#gpsBadge")
|
|
gps_badge.wait_for(timeout=10000)
|
|
|
|
# The badge should exist and show coordinates (OK state)
|
|
badge_text = gps_badge.inner_text()
|
|
assert "📍" in badge_text
|
|
# Check it's in OK state (class contains 'ok')
|
|
assert "ok" in gps_badge.get_attribute("class")
|