fix: E2E测试标题步骤placeholder不匹配+AI自动选择模式处理 #1298

Closed
xiaoxia wants to merge 1 commits from fix/e2e-title-placeholder-v2 into develop
Owner

问题

Staging E2E 测试 core-generation.spec.ts 第214行超时失败:

  • 第212行:heading "选择标题" 能找到
  • 第214行:getByPlaceholder("输入自定义标题…") 超时180秒

根因分析

  1. placeholder 不匹配:PR #1285 重构后,标题步骤组件从旧的 <input placeholder="输入自定义标题…"> 改为 Step4TitleSettings.tsx 中的 antd AutoComplete,placeholder 变为 "输入或从标题库选择…"
  2. 条件渲染Step4TitleSettings 有 AI 自动选择模式(aiAutoSelect),开启时 AutoComplete 输入框不会渲染(只显示只读的 AI 选定标题 + "换一个"按钮)

修复

  1. 更新 E2E 测试中的 placeholder 为实际值 "输入或从标题库选择…"
  2. 新增 AI 模式检测:如果 .xx-title-ai-toggle .xx-switch.active 可见,先点击切换到手动模式,再填写标题输入框

改动文件

  • apps/web/e2e/core-generation.spec.ts
## 问题 Staging E2E 测试 `core-generation.spec.ts` 第214行超时失败: - 第212行:heading "选择标题" ✅ 能找到 - 第214行:`getByPlaceholder("输入自定义标题…")` ❌ 超时180秒 ## 根因分析 1. **placeholder 不匹配**:PR #1285 重构后,标题步骤组件从旧的 `<input placeholder="输入自定义标题…">` 改为 `Step4TitleSettings.tsx` 中的 antd `AutoComplete`,placeholder 变为 `"输入或从标题库选择…"` 2. **条件渲染**:`Step4TitleSettings` 有 AI 自动选择模式(`aiAutoSelect`),开启时 AutoComplete 输入框不会渲染(只显示只读的 AI 选定标题 + "换一个"按钮) ## 修复 1. 更新 E2E 测试中的 placeholder 为实际值 `"输入或从标题库选择…"` 2. 新增 AI 模式检测:如果 `.xx-title-ai-toggle .xx-switch.active` 可见,先点击切换到手动模式,再填写标题输入框 ## 改动文件 - `apps/web/e2e/core-generation.spec.ts`
xiaoxia added 1 commit 2026-08-08 11:31:12 +08:00
fix: E2E测试标题步骤placeholder不匹配+AI自动选择模式处理
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 31s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m22s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 1m28s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m16s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m51s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m56s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m21s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m14s
CI/CD Pipeline / CI Gate (pull_request) Successful in 10s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 53s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m18s
835e83f3f6
- placeholder从"输入自定义标题…"改为"输入或从标题库选择…"(匹配Step4TitleSettings中AutoComplete的实际placeholder)
- 新增AI自动选择模式检测:如果模板启用了aiAutoSelect,先点击toggle切换到手动模式再填写标题
- 修复staging E2E测试第214行超时180秒失败

🚀 预览环境已部署

项目 详情
PR号 #1298
预览链接 https://pr-1298.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1298 | | 预览链接 | [https://pr-1298.preview.xiaoxiajianji.com](https://pr-1298.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

代码审查结果 - PR #1298

⚠️ 问题(0个需要修改)

💡 建议(2个可选)

  1. apps/web/e2e/core-generation.spec.ts 第213行:使用了 CSS 类选择器 .xx-title-ai-toggle .xx-switch.active。如果前端重构或 CSS 类名发生变化(如 BEM 命名调整或 CSS Modules 生成哈希),此测试将失败。建议使用 page.getByRole('switch', { name: '...' }) 或添加 data-testid 属性来定位元素,以提高测试的健壮性。
  2. apps/web/e2e/core-generation.spec.ts 第218行:使用 getByPlaceholder 依赖具体的文案文本。文案变更(如翻译调整或微小的文案优化)会导致测试失败。建议给输入框添加 data-testid 属性,使用 page.getByTestId('title-input') 进行定位。

良好实践

  • 使用了 .catch(() => false) 来优雅地处理元素可能不存在的情况,避免了因元素未找到而直接抛出异常导致的测试中断,这是处理可选 UI 元素的良好实践。

格式检查通过 | 逻辑审查通过 | 性能无明显问题


🤖 由 AI 代码审查机器人自动生成 | 2026-08-08 03:33:21 | 模型:

## 代码审查结果 - PR #1298 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(2个可选) 1. **apps/web/e2e/core-generation.spec.ts 第213行**:使用了 CSS 类选择器 `.xx-title-ai-toggle .xx-switch.active`。如果前端重构或 CSS 类名发生变化(如 BEM 命名调整或 CSS Modules 生成哈希),此测试将失败。建议使用 `page.getByRole('switch', { name: '...' })` 或添加 `data-testid` 属性来定位元素,以提高测试的健壮性。 2. **apps/web/e2e/core-generation.spec.ts 第218行**:使用 `getByPlaceholder` 依赖具体的文案文本。文案变更(如翻译调整或微小的文案优化)会导致测试失败。建议给输入框添加 `data-testid` 属性,使用 `page.getByTestId('title-input')` 进行定位。 ### ✅ 良好实践 - 使用了 `.catch(() => false)` 来优雅地处理元素可能不存在的情况,避免了因元素未找到而直接抛出异常导致的测试中断,这是处理可选 UI 元素的良好实践。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-08 03:33:21 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot approved these changes 2026-08-08 11:34:42 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-08-08 11:34:42 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia closed this pull request 2026-08-08 11:39:08 +08:00

🗑️ 预览环境已清理

PR #1298 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1298 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 31s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m22s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 1m28s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m16s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m51s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m56s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m21s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m14s
CI/CD Pipeline / CI Gate (pull_request) Successful in 10s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 53s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m18s

Pull request closed

Sign in to join this conversation.