Status: review
作为测试开发者, 我想要编写删除订单的 E2E 测试, 以便验证订单删除功能和相关约束。
Given 编辑订单测试已通过 When 编写删除订单测试用例 Then 包含以下测试场景:
删除草稿状态订单
删除有关联人员的订单
取消删除
测试文件: web/tests/e2e/specs/admin/order-delete.spec.ts
web/tests/e2e/specs/admin/order-delete.spec.tsEpic 10: 订单管理 E2E 测试 (Epic C - 业务测试 Epic)
依赖:
Page Object 已有的删除功能:
web/tests/e2e/pages/admin/order-management.page.ts 包含以下删除相关方法:
打开删除确认对话框:
async openDeleteDialog(orderName: string): Promise<void>
role="alertdialog")确认删除:
async confirmDelete(): Promise<void>
取消删除:
async cancelDelete(): Promise<void>
删除订单完整流程:
async deleteOrder(orderName: string): Promise<boolean>
验证订单存在:
async orderExists(orderName: string): Promise<boolean>
删除草稿状态订单:
删除有关联人员的订单:
取消删除:
边界条件测试(可选):
claude-opus-4-5-20251101
已完成的实现:
web/tests/e2e/specs/admin/order-delete.spec.tsopenDeleteDialog 方法,使其使用菜单模式(与 openEditDialog 一致)confirmDelete 方法,支持多种可能的按钮名称(确认删除/删除/确定/确认)测试覆盖范围:
测试环境问题说明:
在测试执行过程中遇到了一些环境相关的限制:
getFirstOrderName 函数优先使用现有订单@d8d/allin-order-management-ui),使用了灵活的正则表达式匹配多种可能的按钮名称运行测试建议:
# 运行单个测试(推荐调试时使用)
cd web
npx playwright test --config=tests/e2e/playwright.config.ts --project=chromium --grep "应该成功删除草稿订单"
# 运行所有删除测试
npx playwright test --config=tests/e2e/playwright.config.ts --project=chromium order-delete
web/tests/e2e/specs/admin/order-delete.spec.ts - 完整的删除订单测试套件,包含12个测试用例web/tests/e2e/pages/admin/order-management.page.ts - 修复了 openDeleteDialog 方法以使用菜单模式,更新了 confirmDelete 方法支持多种按钮名称getFirstOrderName 函数用于获取列表中的第一个有效订单(跳过占位符文本)新增文件:
web/tests/e2e/specs/admin/order-delete.spec.ts修改文件:
web/tests/e2e/pages/admin/order-management.page.ts修改内容:
openDeleteDialog: 更新为使用菜单模式(先点击"打开菜单",再点击"删除")confirmDelete: 更新选择器支持多种按钮名称(确认删除/删除/确定/确认)2026-01-12