@@ -0,0 +1,63 @@
|
||||
"""Playwright E2E: настройки /recipes — sync panel, credentials, logout."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.e2e
|
||||
|
||||
|
||||
def test_settings_panel_open_close(authenticated_page) -> None:
|
||||
page = authenticated_page
|
||||
page.set_viewport_size({"width": 1280, "height": 800})
|
||||
open_btn = page.locator('[data-action="open-settings"]')
|
||||
assert open_btn.count() >= 1, "open-settings должен быть в навигации"
|
||||
open_btn.first.click(force=True)
|
||||
page.wait_for_selector('[data-action="close-settings"]', timeout=5000)
|
||||
assert page.locator('[data-action="toggle-sync-form"]').is_visible()
|
||||
page.locator('#settingsModal [data-action="close-settings"]').first.click()
|
||||
page.wait_for_timeout(300)
|
||||
|
||||
|
||||
def test_toggle_sync_form(authenticated_page) -> None:
|
||||
page = authenticated_page
|
||||
page.set_viewport_size({"width": 1280, "height": 800})
|
||||
page.locator('[data-action="open-settings"]').first.click()
|
||||
page.wait_for_selector('[data-action="toggle-sync-form"]', timeout=5000)
|
||||
page.locator('[data-action="toggle-sync-form"]').click()
|
||||
page.wait_for_timeout(200)
|
||||
|
||||
|
||||
def test_toggle_credentials_form(authenticated_page) -> None:
|
||||
page = authenticated_page
|
||||
page.set_viewport_size({"width": 1280, "height": 800})
|
||||
page.locator('[data-action="open-settings"]').first.click(force=True)
|
||||
cred = page.locator('[data-action="toggle-credentials-form"]')
|
||||
cred.wait_for(state="visible", timeout=5000)
|
||||
cred.click()
|
||||
page.wait_for_timeout(200)
|
||||
|
||||
|
||||
def test_logout_clears_session(authenticated_page, live_server_url) -> None:
|
||||
page = authenticated_page
|
||||
page.set_viewport_size({"width": 1280, "height": 800})
|
||||
with page.expect_response(
|
||||
lambda r: r.url.endswith("/api/auth/logout") and r.request.method == "POST",
|
||||
timeout=10000,
|
||||
):
|
||||
page.locator('[data-action="logout"]').first.click()
|
||||
page.wait_for_url(f"{live_server_url}/", timeout=10000)
|
||||
check = page.request.get(f"{live_server_url}/api/auth/check")
|
||||
assert check.ok
|
||||
assert check.json().get("authenticated") is False
|
||||
|
||||
|
||||
def test_mobile_dashboard_back(authenticated_page) -> None:
|
||||
page = authenticated_page
|
||||
page.set_viewport_size({"width": 390, "height": 844})
|
||||
from tests.e2e.conftest import E2E_MILL_ID
|
||||
|
||||
page.locator(f'[data-action="select-dispenser"][data-dispenser-id="{E2E_MILL_ID}"]').click()
|
||||
page.wait_for_selector('[data-action="mobile-dashboard-back"]', timeout=10000)
|
||||
page.locator('[data-action="mobile-dashboard-back"]').click()
|
||||
page.wait_for_timeout(400)
|
||||
Reference in New Issue
Block a user