You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.1 KiB
65 lines
2.1 KiB
from __future__ import annotations
|
|
|
|
import re
|
|
|
|
from playwright.sync_api import Page, expect
|
|
|
|
from tests.e2e.helpers import expect_flash, expect_path, expect_sidebar_link, login, logout
|
|
|
|
|
|
def test_auth_boundaries_for_login_logout_redirect_and_forbidden_access(
|
|
page: Page,
|
|
base_url: str,
|
|
admin_credentials: dict[str, str],
|
|
entry_credentials: dict[str, str],
|
|
) -> None:
|
|
page.goto(f"{base_url}/auth/login")
|
|
page.get_by_label("用户名").fill(admin_credentials["username"])
|
|
page.get_by_label("密码").fill("WrongPass123!")
|
|
page.get_by_role("button", name="登录").click()
|
|
expect(page).to_have_url(f"{base_url}/auth/login")
|
|
expect_flash(page, "用户名或密码错误。")
|
|
|
|
page.goto(f"{base_url}/admin/accounts")
|
|
expect(page).to_have_url(re.compile(r".*/auth/login\?next=/admin/accounts$"))
|
|
expect_flash(page, "请先登录。")
|
|
|
|
login(
|
|
page,
|
|
base_url,
|
|
username=entry_credentials["username"],
|
|
password=entry_credentials["password"],
|
|
expected_path="/quick-entry/",
|
|
)
|
|
expect(page.get_by_role("heading", name="快速录入")).to_be_visible()
|
|
expect_sidebar_link(page, "快速录入")
|
|
expect(page.get_by_role("link", name="管理首页")).to_have_count(0)
|
|
expect(page.get_by_label("包含女方")).not_to_be_checked()
|
|
|
|
page.goto(f"{base_url}/")
|
|
expect_path(page, base_url, "/quick-entry/")
|
|
expect_flash(page, "您没有权限访问该页面。")
|
|
|
|
logout(page, base_url)
|
|
|
|
|
|
def test_quick_editor_is_limited_to_quick_entry(
|
|
page: Page,
|
|
base_url: str,
|
|
quick_editor_credentials: dict[str, str],
|
|
) -> None:
|
|
login(
|
|
page,
|
|
base_url,
|
|
username=quick_editor_credentials["username"],
|
|
password=quick_editor_credentials["password"],
|
|
expected_path="/quick-entry/",
|
|
)
|
|
|
|
expect(page.get_by_role("heading", name="快速录入")).to_be_visible()
|
|
expect_sidebar_link(page, "快速录入")
|
|
expect(page.get_by_role("link", name="管理首页")).to_have_count(0)
|
|
|
|
page.goto(f"{base_url}/")
|
|
expect_path(page, base_url, "/quick-entry/")
|
|
expect_flash(page, "您没有权限访问该页面。")
|
|
|