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
+20
-16
@@ -370,24 +370,18 @@ def step_person_edit_regions(page: Page) -> None:
|
||||
|
||||
|
||||
def step_person_delete_protection(page: Page) -> None:
|
||||
"""删除被引用的经理被 400 拦截并引导「改为离职」,改为离职成功。"""
|
||||
"""删除被引用的经理被 400 拦截并引导「改为离职」。
|
||||
|
||||
此处**不真改离职**——后续归属调整步骤要以在职经理为目标;
|
||||
「改为离职」的动作移到清理步骤执行(删除保护路径已在本步断言)。
|
||||
"""
|
||||
row = find_row(page, "姓名", MANAGER_NAME)
|
||||
row.locator("button:has-text('删除')").click()
|
||||
page.wait_for_timeout(400)
|
||||
# 确认框文案本身已含「此时应改为离职」引导;确认后走后端校验
|
||||
confirm_message_box(page, "删除")
|
||||
expect_toast(page, "请改为离职", "人员删除保护")
|
||||
|
||||
row = find_row(page, "姓名", MANAGER_NAME)
|
||||
row.locator("button:has-text('设为离职')").click()
|
||||
page.wait_for_timeout(400)
|
||||
confirm_message_box(page, "设为离职")
|
||||
expect_toast(page, "已设为离职", "人员离职")
|
||||
|
||||
row = find_row(page, "姓名", MANAGER_NAME)
|
||||
if "离职" not in row.inner_text():
|
||||
fail("人员离职", "列表状态未更新为离职")
|
||||
print("✓ 5. 删除保护 删除被引人员被 400 拦截,改为离职成功")
|
||||
print("✓ 5. 删除保护 删除被引人员被 400 拦截,引导改为离职")
|
||||
|
||||
|
||||
def step_products(page: Page) -> None:
|
||||
@@ -460,8 +454,8 @@ def step_ownership_change(page: Page) -> None:
|
||||
def step_cleanup(page: Page) -> None:
|
||||
"""清理测试数据:按 客户 → 产品 → 业务员 → 经理 依赖序删除。
|
||||
|
||||
经理在删除保护步骤已改为离职;仍被引用拦截时打印留档说明(属预期
|
||||
保护行为,不做假绿)。
|
||||
经理此刻仍在职(删除保护步骤刻意未改);删除被拦时先「设为离职」
|
||||
再删——届时客户/业务员均已删除,经理应无引用、可正常删除。
|
||||
"""
|
||||
open_menu(page, "客户管理", "基础数据")
|
||||
row = find_row(page, "关键词", CUSTOMER_COMPANY)
|
||||
@@ -486,8 +480,18 @@ def step_cleanup(page: Page) -> None:
|
||||
text = wait_toast(page, "已删除")
|
||||
if "人员已删除" in text:
|
||||
pass
|
||||
elif "请改为离职" in text or "存在团队成员" in text:
|
||||
print(" 数据清理 经理仍被引用(属预期保护),留档说明:保留离职态经理")
|
||||
elif "请改为离职" in text or "存在团队成员" in text or "业务归属" in text:
|
||||
# 引导路径照做:设为离职后再删(引用已随客户/业务员删除解除)
|
||||
row = find_row(page, "姓名", MANAGER_NAME)
|
||||
row.locator("button:has-text('设为离职')").click()
|
||||
page.wait_for_timeout(400)
|
||||
confirm_message_box(page, "设为离职")
|
||||
expect_toast(page, "已设为离职", "清理·经理离职")
|
||||
row = find_row(page, "姓名", MANAGER_NAME)
|
||||
row.locator("button:has-text('删除')").click()
|
||||
page.wait_for_timeout(400)
|
||||
confirm_message_box(page, "删除")
|
||||
expect_toast(page, "人员已删除", "清理·经理删除")
|
||||
else:
|
||||
fail("数据清理", f"清理经理出现未预期提示:{text or '(无)'}")
|
||||
print("✓ 12. 数据清理 测试数据按依赖序清理,被保护项按留档说明处理")
|
||||
|
||||
Reference in new issue
Block a user