diff --git a/tests/test_generate_form.py b/tests/test_generate_form.py index cf3cd53..5927357 100644 --- a/tests/test_generate_form.py +++ b/tests/test_generate_form.py @@ -70,8 +70,8 @@ def _render(*, google: bool = False, api_key: str = "test-key") -> str: def _google_credential() -> str: payload = json.dumps( { - "name": "Adam Moussa", - "email": "adam.moussa@seahavenind.com", + "name": "Test Admin", + "email": "test-admin@example.com", "picture": ( "data:image/svg+xml," "" @@ -309,7 +309,7 @@ class TestGenerateFormPlaywright: ) assert page.locator("#total-display").inner_text() == "$10.80" - @pytest.mark.parametrize("width", [320, 375]) + @pytest.mark.parametrize("width", [320, 375, 479]) def test_local_roster_has_no_horizontal_overflow(self, browser_page, width): page = browser_page page.set_viewport_size({"width": width, "height": 800}) @@ -406,7 +406,32 @@ class TestGenerateFormGooglePlaywright: "#admin-btn", "#sign-out-btn", ): - assert page.locator(selector).is_visible() + locator = page.locator(selector) + assert locator.is_visible() + bounds = locator.evaluate( + """element => { + const rect = element.getBoundingClientRect(); + return { + left: rect.left, + top: rect.top, + right: rect.right, + bottom: rect.bottom, + viewportWidth: window.innerWidth, + viewportHeight: window.innerHeight, + }; + }""" + ) + assert bounds["left"] >= 0 + assert bounds["top"] >= 0 + assert bounds["right"] <= bounds["viewportWidth"] + assert bounds["bottom"] <= bounds["viewportHeight"] + + for selector in ("#user-name", "#user-email"): + assert page.locator(selector).evaluate( + """element => + element.scrollWidth <= element.clientWidth && + element.scrollHeight <= element.clientHeight""" + ) assert page.locator("#admin-btn").is_enabled() assert page.locator("#sign-out-btn").is_enabled()