fix: 适配 hash 路由登录页 (/#/login)
This commit is contained in:
@@ -29,8 +29,10 @@ class TestLoginSmoke:
|
||||
"""验证加载预登录态后可直接访问管理后台,无需重新登录。"""
|
||||
ensure_login("super_admin")
|
||||
page.goto(web_config["base_url"])
|
||||
# 等 hash 路由完成
|
||||
page.wait_for_timeout(2000)
|
||||
# 已登录状态下不应重定向到登录页
|
||||
assert "/login" not in page.url, (
|
||||
assert "#/login" not in page.url and "/login" not in page.url, (
|
||||
f"预登录态失效!仍然重定向到登录页。请运行: python tests/web/save_auth.py"
|
||||
)
|
||||
|
||||
@@ -40,7 +42,8 @@ class TestLoginSmoke:
|
||||
"""验证车队长预登录态有效。"""
|
||||
ensure_login("team_leader")
|
||||
page.goto(web_config["base_url"])
|
||||
assert "/login" not in page.url
|
||||
page.wait_for_timeout(2000)
|
||||
assert "#/login" not in page.url and "/login" not in page.url
|
||||
|
||||
@pytest.mark.p0
|
||||
@pytest.mark.smoke
|
||||
@@ -62,29 +65,31 @@ class TestLoginPageDirect:
|
||||
@pytest.mark.p1
|
||||
def test_login_page_accessible(self, page: Page, web_config):
|
||||
"""验证登录页可直接访问并正常渲染。"""
|
||||
page.goto(f"{web_config['base_url']}/login")
|
||||
page.goto(f"{web_config['base_url']}/#/login")
|
||||
# 登录页应存在用户名输入框
|
||||
assert page.get_by_placeholder("请输入用户名").is_visible()
|
||||
|
||||
@pytest.mark.p1
|
||||
def test_login_page_elements(self, page: Page, web_config):
|
||||
"""验证登录页所有关键元素存在。"""
|
||||
page.goto(f"{web_config['base_url']}/login")
|
||||
page.goto(f"{web_config['base_url']}/#/login")
|
||||
assert page.get_by_placeholder("请输入用户名").is_visible()
|
||||
assert page.get_by_placeholder("请输入密码").is_visible()
|
||||
assert page.get_by_role("button", name="登录").is_visible()
|
||||
|
||||
@pytest.mark.p1
|
||||
def test_double_login_session_redirect(self, page: Page, web_config, ensure_login):
|
||||
"""验证已登录用户访问 /login 页自动重定向。"""
|
||||
"""验证已登录用户访问登录页自动重定向。"""
|
||||
ensure_login("super_admin")
|
||||
page.goto(web_config["base_url"])
|
||||
assert "/login" not in page.url
|
||||
page.wait_for_timeout(2000)
|
||||
assert "#/login" not in page.url and "/login" not in page.url
|
||||
|
||||
# 已登录状态再次访问 /login
|
||||
page.goto(f"{web_config['base_url']}/login")
|
||||
# 已登录状态再次访问登录页
|
||||
page.goto(f"{web_config['base_url']}/#/login")
|
||||
page.wait_for_timeout(2000)
|
||||
# 应被重定向到后台
|
||||
assert "/login" not in page.url, (
|
||||
assert "#/login" not in page.url and "/login" not in page.url, (
|
||||
f"已登录用户访问 /login 应被重定向,当前: {page.url}"
|
||||
)
|
||||
|
||||
@@ -102,4 +107,5 @@ class TestLoginUI:
|
||||
"""通过 UI 完成完整登录(需要手动关闭 skip_login)。"""
|
||||
ensure_login("super_admin")
|
||||
page.goto(web_config["base_url"])
|
||||
assert "/login" not in page.url
|
||||
page.wait_for_timeout(2000)
|
||||
assert "#/login" not in page.url and "/login" not in page.url
|
||||
|
||||
Reference in New Issue
Block a user