Status: done
作为测试开发者, 我想要编写删除订单的 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: 更新选择器支持多种按钮名称(确认删除/删除/确定/确认)注意: 本次代码审查发现其他残疾人管理测试文件也被修改,但这些修改可能与 Epic 9 的稳定性验证工作相关,不在本 Story 范围内。相关文件:
web/tests/e2e/pages/admin/disability-person.page.tsweb/tests/e2e/specs/admin/disability-person-bankcard.spec.tsweb/tests/e2e/specs/admin/disability-person-crud.spec.tsweb/tests/e2e/specs/admin/disability-person-note.spec.tsweb/tests/e2e/specs/admin/disability-person-photo.spec.tsweb/tests/e2e/specs/admin/disability-person-visit.spec.tsweb/tests/e2e/specs/admin/region-cascade.spec.ts2026-01-12
2026-01-12 - 代码审查修复
test.describe.serial 改为并行执行(与 Epic 9.6 决策一致)addPersonToOrder 方法支持通过名称选择残疾人Review Date: 2026-01-12 Reviewer: Claude (Code Review Workflow) Outcome: ✅ APPROVED (after fixes applied)
test.describe.serial 改为 test.describeopenDeleteDialog 方法修改记录 - 确认修改正确,与 openEditDialog 模式一致disabledPersonName 参数waitForTimeout 使用过多 - 优化了 Toast 消息超时时间| AC # | Description | Status |
|---|---|---|
| AC1 | 删除草稿状态订单 | ✅ 实现完整 |
| AC2 | 删除有关联人员的订单 | ✅ 实现完整 |
| AC3 | 取消删除 | ✅ 实现完整 |