fix(monitor): 已登录时点「同步登录态为 Cookie」要干等 30 秒
顺序反了:原先先开页面、读二维码,读完才发现「已经登录、没有二维码」。而读二维码内部 会 wait_for_selector 等满 30 秒才放弃 —— 用户点一下按钮要干等半分钟,还白开一个标签页。 实测日志里就是 `Page.wait_for_selector: Timeout 30000ms exceeded`。 改成先问登录状态(那是一次接口调用,很快),已登录就直接返回,根本不碰页面。 新增测试守住这个顺序:已登录时 context.new_page 不得被调用。
This commit is contained in:
@@ -140,6 +140,21 @@ async def test_an_already_signed_in_profile_needs_no_scan(monkeypatch):
|
||||
assert snapshot["nickname"] == "老王"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_an_already_signed_in_profile_never_opens_a_page(monkeypatch):
|
||||
"""已登录时**根本不该去开页面**。
|
||||
|
||||
读二维码内部会 wait_for_selector 等满 30 秒才放弃,而已经登录时页面上没有二维码 ——
|
||||
顺序反了的话,用户点一下按钮要干等半分钟,还白开一个标签页。
|
||||
"""
|
||||
manager, _pw, _browser, context, _page, _qr = _fake_stack()
|
||||
_patch(monkeypatch, manager, resolver=lambda _c: {"user_id": "u1", "nickname": "小明"})
|
||||
|
||||
await qrlogin.start(qrlogin.PLATFORM_XHS)
|
||||
|
||||
context.new_page.assert_not_called()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_no_qr_and_not_signed_in_is_an_error(monkeypatch):
|
||||
manager, *_rest = _fake_stack()
|
||||
|
||||
Reference in New Issue
Block a user