fix(e2e): v3 对齐实际步骤编号(标题页点下一步后才出现确认生成按钮) #1952

Merged
auto-approve-bot merged 1 commits from fix/e2e-step-numbering into develop 2026-09-16 09:05:23 +08:00
Owner

背景

PR #1950 v2 合入后 Staging E2E 继续失败:

Timed out 30000ms waiting for expect(locator).toBeVisible()
Locator: locator(".xx-step-actions .xx-btn-primary").filter({ hasText: "确认生成" })
Expected: visible; Received: <element(s) not found>

根因

v2 错误假设「✨ 确认生成视频」按钮在标题页(step 3)。但 GenerateStepActions 真实逻辑:

  • step 1~3:主按钮是「下一步 →」(onNext)
  • step 4:主按钮才是「✨ 确认生成视频」(onConfirmGenerate)
  • step 5:渲染中「⏳ 视频渲染中…」/完成后「下一步:选择封面 →」(onNext)
  • step 6(封面):无主按钮

填完标题后必须先点「下一步 →」从 step 3 进入 step 4,确认生成按钮才会出现。

v3 修改

  1. 标题页填完标题后,先断言并点击底部「下一步 →」按钮
  2. 进入 step 4 后,再等待预览就绪(准备预览素材 detached),然后定位并点击「✨ 确认生成视频」
  3. 点击后触发 POST /generation/tasks,进度页断言「视频渲染中」文案
  4. 「下一步:选择封面」按钮增加 expect(visible) 再点击
  5. 不修改任何生产代码,只调整测试流程对齐真实 UI

前端代码的 off-by-one 说明

GenerateStepActions 期望 6 步(封面是 step 6),而 constants.STEPS 和 useStepNavigation 仍定义 5 步(封面是 step 5),handleConfirmGenerate 成功后 setCurrentStep(4) 也与 GenerateStepActions 的 step 5 进度页期望不一致。这是前端本身的步骤编号 bug,但不影响用户体验——按钮依然在正确的时机出现。本次 PR 只修 e2e 测试,生产代码 bug 另行记录。

## 背景 PR #1950 v2 合入后 Staging E2E 继续失败: ``` Timed out 30000ms waiting for expect(locator).toBeVisible() Locator: locator(".xx-step-actions .xx-btn-primary").filter({ hasText: "确认生成" }) Expected: visible; Received: <element(s) not found> ``` ## 根因 v2 错误假设「✨ 确认生成视频」按钮在标题页(step 3)。但 GenerateStepActions 真实逻辑: - step 1~3:主按钮是「下一步 →」(onNext) - step 4:主按钮才是「✨ 确认生成视频」(onConfirmGenerate) - step 5:渲染中「⏳ 视频渲染中…」/完成后「下一步:选择封面 →」(onNext) - step 6(封面):无主按钮 填完标题后必须先点「下一步 →」从 step 3 进入 step 4,确认生成按钮才会出现。 ## v3 修改 1. 标题页填完标题后,先断言并点击底部「下一步 →」按钮 2. 进入 step 4 后,再等待预览就绪(准备预览素材 detached),然后定位并点击「✨ 确认生成视频」 3. 点击后触发 POST /generation/tasks,进度页断言「视频渲染中」文案 4. 「下一步:选择封面」按钮增加 expect(visible) 再点击 5. 不修改任何生产代码,只调整测试流程对齐真实 UI ## 前端代码的 off-by-one 说明 GenerateStepActions 期望 6 步(封面是 step 6),而 constants.STEPS 和 useStepNavigation 仍定义 5 步(封面是 step 5),handleConfirmGenerate 成功后 setCurrentStep(4) 也与 GenerateStepActions 的 step 5 进度页期望不一致。这是前端本身的步骤编号 bug,但不影响用户体验——按钮依然在正确的时机出现。本次 PR 只修 e2e 测试,生产代码 bug 另行记录。
xiaoxia added 1 commit 2026-09-16 08:57:42 +08:00
fix(e2e): 对齐实际步骤编号(标题=3→下一步→4确认生成→5进度→6封面)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m15s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m23s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m14s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m58s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m22s
AI Code Review / AI Code Review (pull_request) Successful in 6m38s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 6m56s
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m39s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 12s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 3m23s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 6h18m58s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 6h25m55s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6h24m57s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 6h23m50s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 6h23m50s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 6h23m52s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 6h25m3s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 6h25m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 6h18m2s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 6h18m6s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 6h18m6s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 6h23m28s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 6h18m2s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 6h23m28s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 6h23m50s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 6h23m50s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 6h23m50s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 6h24m57s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 6h25m5s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 6h59m20s
cc7ed1ae62
v3 修复(基于 v2 合入后 CI 结果反馈):
- v2 错误假设「✨ 确认生成视频」按钮在标题页(step 3),但 GenerateStepActions 代码逻辑是:
  step 1~3 显示「下一步 →」,step 4 才显示「✨ 确认生成视频」,
  step 5 渲染中显示「⏳ 视频渲染中…」完成后显示「下一步:选择封面」,step 6 封面无主按钮
- STEPS 常量仍定义 5 步,但 Step4TitleSettings 注释和 handleConfirmGenerate setCurrentStep(4) 的逻辑显示:
  标题页是 step 3,点「下一步」进入 step 4 才出现确认生成按钮,确认后 setCurrentStep(4) 与进度页逻辑冲突
  (前端代码本身存在步骤编号 off-by-one,但测试需对齐真实可点击元素,不修改生产代码)
- v3 在填完标题后先点「下一步 →」进入 step 4,再找「✨ 确认生成视频」按钮点击
- waitForResponse 超时保持 60s,进度页断言改为「视频渲染中」文案
- 「下一步:选择封面」按钮增加 expect(visible) 等待
auto-approve-bot approved these changes 2026-09-16 08:59:01 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-16 08:59:01 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1952 | | 预览链接 | [https://pr-1952.preview.xiaoxiajianji.com](https://pr-1952.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 1e8ab91984 into develop 2026-09-16 09:05:23 +08:00
auto-approve-bot deleted branch fix/e2e-step-numbering 2026-09-16 09:05:31 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #1952 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.