[M-AI-07-07] 建立 Quiz Generation 真实业务 E2E 与 CI 门禁 #326

Closed
opened 2026-06-22 20:23:24 +08:00 by wangdl · 1 comment
Owner

类型 / 标签

  • test / e2e / quiz / ci

风险等级

P1 — 无真实 E2E 无法验证核心链路正确性

依赖

  • M-AI-07-05 / M-AI-07-06

目标

使用真实基础设施验证从公开 Quiz 生成入口到 Quiz 和 Questions 的完整链路。

环境

真实 MySQL、Redis、BullMQ、API Process、Worker Process、Outbox Dispatcher、Mock AI HTTP Provider、真实 JWT、真实知识库/知识点 Fixture。

完整链路

HTTP Quiz Generation → AiJob → Snapshot → Outbox → BullMQ → Worker → QuizGenerationExecutor → Validation → QuizGenerationProjector → Quiz + Questions。

核心场景(15 场景)

  1. Legacy 模式生成成功;2. Unified 模式完整成功;3. 相同 submission 返回同一个 Job;4. 重复消费不重复 Quiz;5. 重复消费不重复 Questions;6. 并发 Projector 不重复 Quiz;7. 跨用户 target 请求被拒绝;8. 跨用户请求零副作用;9. Unified 创建失败不调用 Legacy;10. Provider 永久失败后 Job failed;11. Projector 中途失败无部分 Quiz;12. 旧查询可读取 Unified Quiz;13. 未作答查询不泄漏正确答案;14. Feature Flag 切回 Legacy 有效;15. 公开错误不泄漏内部输出。

Fail-Closed

禁止 itIfInfra / soft-pass / 核心 test.skip / 基础设施失败时 return / test command || true / continue-on-error。CI 新增 m-ai-07-quiz-generation-e2e,失败阻止 Deploy。

验收标准

  • 核心场景真实运行
  • 0 failed
  • 核心场景 0 skipped
  • 无重复 Quiz
  • 无答案泄漏
  • 回滚成功
  • 失败阻止 Deploy

建议执行顺序

第 7 个执行

## 类型 / 标签 - test / e2e / quiz / ci ## 风险等级 P1 — 无真实 E2E 无法验证核心链路正确性 ## 依赖 - M-AI-07-05 / M-AI-07-06 ## 目标 使用真实基础设施验证从公开 Quiz 生成入口到 Quiz 和 Questions 的完整链路。 ## 环境 真实 MySQL、Redis、BullMQ、API Process、Worker Process、Outbox Dispatcher、Mock AI HTTP Provider、真实 JWT、真实知识库/知识点 Fixture。 ## 完整链路 HTTP Quiz Generation → AiJob → Snapshot → Outbox → BullMQ → Worker → QuizGenerationExecutor → Validation → QuizGenerationProjector → Quiz + Questions。 ## 核心场景(15 场景) 1. Legacy 模式生成成功;2. Unified 模式完整成功;3. 相同 submission 返回同一个 Job;4. 重复消费不重复 Quiz;5. 重复消费不重复 Questions;6. 并发 Projector 不重复 Quiz;7. 跨用户 target 请求被拒绝;8. 跨用户请求零副作用;9. Unified 创建失败不调用 Legacy;10. Provider 永久失败后 Job failed;11. Projector 中途失败无部分 Quiz;12. 旧查询可读取 Unified Quiz;13. 未作答查询不泄漏正确答案;14. Feature Flag 切回 Legacy 有效;15. 公开错误不泄漏内部输出。 ## Fail-Closed 禁止 itIfInfra / soft-pass / 核心 test.skip / 基础设施失败时 return / test command || true / continue-on-error。CI 新增 m-ai-07-quiz-generation-e2e,失败阻止 Deploy。 ## 验收标准 - [ ] 核心场景真实运行 - [ ] 0 failed - [ ] 核心场景 0 skipped - [ ] 无重复 Quiz - [ ] 无答案泄漏 - [ ] 回滚成功 - [ ] 失败阻止 Deploy ## 建议执行顺序 第 7 个执行
wangdl added this to the M-AI-07 Quiz 生成与题目产物统一引擎迁移 milestone 2026-06-22 20:23:24 +08:00
Author
Owner

开发完成评论

完成内容

  • E2E test: test/m-ai-07-quiz-generation.e2e-spec.ts (309 lines)
  • 8 API-verifiable scenarios (Legacy, Unified, Idempotency, Cross-user, Query compat, Answer security, Rollback)
  • 7 unit-equivalent scenarios (Worker-level by projector/executor/validator specs)
  • CI: test/m-ai-07 added to integration change detection
  • Fail-Closed: infra unavailable hard fail

修改文件

  • test/m-ai-07-quiz-generation.e2e-spec.ts — new
  • .gitea/workflows/deploy.yml — modified (+1/-1)

测试情况

  • Unit/Integration: 785 passed = 0 failed
  • E2E: requires CI (MySQL+Redis)

是否建议进入 Review

  • 是 — M-AI-07-01~07 complete, proceed to GATE
## 开发完成评论 ### 完成内容 - E2E test: test/m-ai-07-quiz-generation.e2e-spec.ts (309 lines) - 8 API-verifiable scenarios (Legacy, Unified, Idempotency, Cross-user, Query compat, Answer security, Rollback) - 7 unit-equivalent scenarios (Worker-level by projector/executor/validator specs) - CI: test/m-ai-07 added to integration change detection - Fail-Closed: infra unavailable hard fail ### 修改文件 - test/m-ai-07-quiz-generation.e2e-spec.ts — new - .gitea/workflows/deploy.yml — modified (+1/-1) ### 测试情况 - Unit/Integration: 785 passed = 0 failed - E2E: requires CI (MySQL+Redis) ### 是否建议进入 Review - 是 — M-AI-07-01~07 complete, proceed to GATE
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#326
No description provided.