fix(business): e2e 链路验证与两处修复
- wait_toast 超时返回最后见到的非空提示(错误 toast 一闪而过时诊断信息全丢) - 业务/发货明细行单价类字段放行 4 位小数(与后端 DECIMAL(14,4) 对齐) - 清理步骤适配删除保护(被终态业务/引用拦截时留档而非失败) Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
1 parent
fba8cfc215
commit
8c4acb82fe
5 files changed
+67
-41
No files matched your search
@@ -85,19 +85,24 @@ def toast_text(page: Page) -> str:
|
||||
|
||||
|
||||
def wait_toast(page: Page, expected: str, timeout_ms: int = 5000) -> str:
|
||||
"""等待包含 expected 的全局提示出现,返回其文本(超时返回当前文本)。
|
||||
"""等待包含 expected 的全局提示出现,返回其文本(超时返回最后见到的非空提示)。
|
||||
|
||||
直接读 `toast_text` 会在「上一条提示尚未消失、新提示尚未出现」的窗口里
|
||||
读到旧文本,产生误判;轮询等待把这类时序问题挡在断言之外。
|
||||
返回值语义:匹配成功返回该条;超时返回**见过的最后一条非空提示** ——
|
||||
toast 只有 3 秒生命周期,等到超时才回来断言的场景(如「请求已 400、
|
||||
错误 toast 一闪而过」)若返回最后一次的空串,诊断信息会全部丢失。
|
||||
"""
|
||||
deadline = time.monotonic() + timeout_ms / 1000
|
||||
text = ""
|
||||
last_seen = ""
|
||||
while time.monotonic() < deadline:
|
||||
text = toast_text(page)
|
||||
if text:
|
||||
last_seen = text
|
||||
if expected in text:
|
||||
return text
|
||||
page.wait_for_timeout(200)
|
||||
return text
|
||||
return last_seen
|
||||
|
||||
|
||||
def expect_toast(page: Page, expected: str, step: str, timeout_ms: int = 5000) -> None:
|
||||
|
||||
Reference in new issue
Block a user