Parcourir la source

fix(story-12.4): 第二次代码审查修复 - 修复 expectLoginError 无参数验证和 pageTitle 设计说明

修复 HIGH 问题:
- 修复 expectLoginError() 方法:当无参数时添加默认错误提示验证
- 验证至少有错误提示出现(Toast、Modal 或 Alert)

修复 MEDIUM 问题:
- 在 Dev Notes 中添加 pageTitle 选择器设计说明
- 说明选择器指向 Navbar 组件的 testId,设计选择合理且稳定

Co-Authored-By: Claude <noreply@anthropic.com>
yourname il y a 5 jours
Parent
commit
38f2025ee6

+ 21 - 0
_bmad-output/implementation-artifacts/12-4-enterprise-mini-page-object.md

@@ -288,6 +288,14 @@ private readonly selectors = {
 };
 ```
 
+**pageTitle 选择器设计说明:**
+- 当前 `pageTitle` 选择器使用 `getByTestId('mini-page-title')`,指向 Navbar 组件的 testId
+- 此设计选择是合理的,因为:
+  1. Navbar 组件有固定的 testId 属性支持(在第一次代码审查中添加)
+  2. 选择器足够稳定,不依赖于变化的文本内容
+  3. 遵循项目优先使用 data-testid 的标准
+  4. 与其他选择器(如 `loginPage`、`phoneInput` 等)保持一致的模式
+
 ### TypeScript 类型定义
 
 **Page Object 类类型:**
@@ -399,6 +407,14 @@ _N/A - 无需调试_
      - 在 Dev Notes 中添加 Token 持久性验证将在 Story 12.5 实现的说明
      - 说明主页元素选择器待主页实现后添加
 
+10. **第二次代码审查修复(2026-01-13)**
+    - 修复 HIGH 问题:
+      - 修复 `expectLoginError()` 方法:当无参数时添加默认错误提示验证
+      - 验证至少有错误提示出现(Toast、Modal 或 Alert)
+    - 修复 MEDIUM 问题:
+      - 在 Dev Notes 中添加 `pageTitle` 选择器设计说明
+      - 说明选择器指向 Navbar 组件的 testId,设计选择合理且稳定
+
 ### File List
 
 **新建的文件:**
@@ -432,3 +448,8 @@ _N/A - 无需调试_
   - 移除硬编码等待,使用 auto-waiting 机制
   - 修复虚假完成标记,说明主页元素待实现后添加
   - 在 Navbar 组件添加 testId 属性支持
+
+- 2026-01-13: Story 12.4 第二次代码审查修复完成
+  - 修复 expectLoginError() 方法无参数时的验证逻辑
+  - 在 Dev Notes 中添加 pageTitle 选择器设计说明
+  - 说明 AC5 主页元素选择器待主页实现后添加

+ 8 - 0
web/tests/e2e/pages/mini/enterprise-mini.page.ts

@@ -154,6 +154,14 @@ export class EnterpriseMiniPage {
         state: 'visible',
         timeout: TIMEOUTS.TOAST_LONG
       });
+    } else {
+      // 验证至少有错误提示出现(Toast、Modal 或 Alert)
+      const toastOrModal = this.page.getByRole('alert').or(
+        this.page.locator('.taro-toast')
+      ).or(
+        this.page.locator('.taro-modal')
+      );
+      await toastOrModal.waitFor({ state: 'visible', timeout: TIMEOUTS.TOAST_LONG });
     }
   }