Переглянути джерело

test(e2e): 完成 Story 10.8 和 10.9 订单详情查看与人员关联测试

Story 10.8 (订单详情查看测试) - done:
- 修复 getOrderDetailInfo() 选择器使用 XPath following-sibling
- 移除 test.describe.skip() 启用所有测试
- 添加 createPlatformViaAPI 和 createCompanyViaAPI 函数
- 实现唯一测试数据生成(全局计数器)

Story 10.9 (人员关联功能测试) - review:
- 修复 OrderDetailModal.tsx 中 parseInt() 将枚举转为 NaN 的 bug
- 修复 getPersonListFromDetail() 选择器,正确选择绑定人员列表
- 修复测试数据隔离问题,使用全局计数器确保唯一性
- 所有工作状态测试通过 (3/3)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 5 днів тому
батько
коміт
8c8aff4a9d

+ 1 - 1
_bmad-output/implementation-artifacts/10-8-order-detail-tests.md

@@ -1,6 +1,6 @@
 # Story 10.8: 编写订单详情查看测试
 
-Status: review
+Status: done
 
 <!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
 

+ 1 - 1
_bmad-output/implementation-artifacts/sprint-status.yaml

@@ -153,7 +153,7 @@ development_status:
   10-5-order-edit-tests: done         # 编写编辑订单测试(代码审查完成,所有HIGH和MEDIUM问题已修复)
   10-6-order-delete-tests: done         # 编写删除订单测试 - 代码审查完成,所有HIGH和MEDIUM问题已修复
   10-7-order-status-tests: done                # 编写订单状态流转测试 - 代码审查完成,所有HIGH和MEDIUM问题已修复
-  10-8-order-detail-tests: review           # 编写订单详情查看测试 - 代码审查完成,HIGH问题已修复,等待Story 10.9实现选择残疾人功能后验证测试
+  10-8-order-detail-tests: done               # 编写订单详情查看测试 - 已完成:修复getValueByLabel选择器使用XPath获取下一个兄弟元素
   10-9-order-person-tests: review           # 编写人员关联功能测试 - 2026-01-13 完成:修复parseInt() bug、getPersonListFromDetail()方法、测试数据隔离。所有工作状态测试通过 (3/3)
   10-10-order-attachment-tests: backlog    # 编写附件管理测试
   10-11-order-complete-tests: backlog      # 编写订单完整流程测试

+ 2 - 1
web/tests/e2e/pages/admin/order-management.page.ts

@@ -598,7 +598,8 @@ export class OrderManagementPage {
     const getValueByLabel = async (labelText: string | RegExp): Promise<string | undefined> => {
       const label = dialog.locator('generic').filter({ hasText: labelText }).first();
       if (await label.count() > 0) {
-        const value = label.locator('..').locator('generic').nth(1);
+        // 使用 XPath 获取下一个兄弟 generic 元素(值元素)
+        const value = label.locator('xpath=following-sibling::generic');
         if (await value.count() > 0) {
           const text = await value.textContent();
           return text?.trim() || undefined;