|
@@ -15,6 +15,8 @@
|
|
|
| 1.8 | 2026-01-03 | 完成故事010.006:Web集成和Server模块替换 | James (Claude Code) |
|
|
| 1.8 | 2026-01-03 | 完成故事010.006:Web集成和Server模块替换 | James (Claude Code) |
|
|
|
| 1.9 | 2026-01-03 | 修复故事010.006集成测试:全部17个测试通过 | James (Claude Code) |
|
|
| 1.9 | 2026-01-03 | 修复故事010.006集成测试:全部17个测试通过 | James (Claude Code) |
|
|
|
| 1.10 | 2026-01-03 | 修复故事010.006 E2E测试:50个测试通过,更新测试策略文档 | James (Claude Code) |
|
|
| 1.10 | 2026-01-03 | 修复故事010.006 E2E测试:50个测试通过,更新测试策略文档 | James (Claude Code) |
|
|
|
|
|
+| 1.11 | 2026-01-03 | 添加故事010.007:租户后台UI交互E2E测试 | James (Claude Code) |
|
|
|
|
|
+| 1.12 | 2026-01-03 | 添加故事010.008:小程序端广告展示E2E测试 | James (Claude Code) |
|
|
|
|
|
|
|
|
## 史诗目标
|
|
## 史诗目标
|
|
|
|
|
|
|
@@ -246,6 +248,91 @@
|
|
|
- Schema响应结构保持与原模块一致
|
|
- Schema响应结构保持与原模块一致
|
|
|
- 小程序端无需感知后端模块切换
|
|
- 小程序端无需感知后端模块切换
|
|
|
|
|
|
|
|
|
|
+### Story 7: 租户后台UI交互E2E测试 🔄 进行中
|
|
|
|
|
+
|
|
|
|
|
+**标题**: 租户后台统一广告管理UI交互E2E测试
|
|
|
|
|
+
|
|
|
|
|
+**描述**: 故事010.006的E2E测试只验证了API兼容性(使用`request`对象),没有覆盖真正的UI交互测试。本故事补充使用Playwright的`page`对象进行浏览器页面操作,验证租户后台的完整UI交互流程。
|
|
|
|
|
+
|
|
|
|
|
+**背景说明**:
|
|
|
|
|
+- 当前E2E测试 (`unified-advertisement-api.spec.ts`) 使用 `request` 对象直接调用API
|
|
|
|
|
+- 这实际上是API集成测试,而非真正的端到端UI测试
|
|
|
|
|
+- 需要补充使用 `page` 对象的UI交互测试,验证:
|
|
|
|
|
+ - 登录租户后台
|
|
|
|
|
+ - 导航到广告管理页面
|
|
|
|
|
+ - 创建、编辑、删除广告
|
|
|
|
|
+ - 验证页面元素、表单交互、数据展示
|
|
|
|
|
+
|
|
|
|
|
+**任务**:
|
|
|
|
|
+- [ ] 创建UI交互E2E测试文件:`web/tests/e2e/tenant-advertisement-ui.spec.ts`
|
|
|
|
|
+- [ ] 测试登录流程:超级管理员登录租户后台
|
|
|
|
|
+- [ ] 测试导航:验证广告管理菜单项可点击,页面正确跳转
|
|
|
|
|
+- [ ] 测试广告列表:验证广告列表正确显示,包含正确数据
|
|
|
|
|
+- [ ] 测试创建广告:打开创建表单,填写字段,提交,验证创建成功
|
|
|
|
|
+- [ ] 测试编辑广告:点击编辑按钮,修改数据,保存,验证更新成功
|
|
|
|
|
+- [ ] 测试删除广告:点击删除按钮,确认删除,验证数据删除
|
|
|
|
|
+- [ ] 测试广告类型管理:验证类型列表、创建、编辑、删除
|
|
|
|
|
+- [ ] 测试分页功能:验证翻页功能正常工作
|
|
|
|
|
+- [ ] 测试搜索功能:验证按标题/代码搜索功能正常
|
|
|
|
|
+- [ ] 测试表单验证:验证必填字段、格式验证、错误提示
|
|
|
|
|
+- [ ] 测试图片上传:验证图片选择器集成正常工作
|
|
|
|
|
+- [ ] 测试响应式布局:验证页面在不同屏幕尺寸下正常显示
|
|
|
|
|
+- [ ] 更新E2E测试规范文档,添加UI交互测试示例
|
|
|
|
|
+
|
|
|
|
|
+**相关文件**: `docs/stories/010.007.story.md`
|
|
|
|
|
+
|
|
|
|
|
+**测试覆盖**:
|
|
|
|
|
+- 登录和导航流程
|
|
|
|
|
+- 广告管理CRUD操作
|
|
|
|
|
+- 广告类型管理CRUD操作
|
|
|
|
|
+- 表单验证和错误处理
|
|
|
|
|
+- 分页和搜索功能
|
|
|
|
|
+- 图片选择器集成
|
|
|
|
|
+- 响应式布局验证
|
|
|
|
|
+
|
|
|
|
|
+### Story 8: 小程序端广告展示E2E测试 🔄 进行中
|
|
|
|
|
+
|
|
|
|
|
+**标题**: 小程序端广告展示功能E2E测试验证
|
|
|
|
|
+
|
|
|
|
|
+**描述**: 史诗010的核心目标之一是"小程序端无需感知后端模块切换"。本故事通过E2E测试验证小程序端能够正常展示统一广告数据,确保后端模块切换对小程序端完全透明。
|
|
|
|
|
+
|
|
|
|
|
+**背景说明**:
|
|
|
|
|
+- 后端模块从 `advertisements-module-mt` 切换到 `unified-advertisements-module`
|
|
|
|
|
+- API路径和响应结构保持100%兼容
|
|
|
|
|
+- 小程序端代码无需任何修改
|
|
|
|
|
+- 需要验证小程序端能正常获取和展示广告数据
|
|
|
|
|
+
|
|
|
|
|
+**关键验证点**:
|
|
|
|
|
+- 小程序启动后能正确调用 `/api/v1/advertisements` 获取广告
|
|
|
|
|
+- 广告图片正确显示
|
|
|
|
|
+- 点击广告能正确跳转(webview/小程序页面)
|
|
|
|
|
+- 不同位置(position)的广告正确展示
|
|
|
|
|
+- 广告状态控制(启用/禁用)生效
|
|
|
|
|
+- 多租户用户看到的是相同的统一广告数据
|
|
|
|
|
+
|
|
|
|
|
+**任务**:
|
|
|
|
|
+- [ ] 创建小程序E2E测试文件:`mini/tests/e2e/advertisement-display.spec.ts`
|
|
|
|
|
+- [ ] 测试广告列表获取:验证小程序能成功获取广告列表
|
|
|
|
|
+- [ ] 测试广告图片显示:验证广告图片URL正确,图片能正常加载
|
|
|
|
|
+- [ ] 测试广告点击跳转:验证webview类型和小程序页面类型跳转正常
|
|
|
|
|
+- [ ] 测试位置过滤:验证不同位置(home/category等)的广告正确显示
|
|
|
|
|
+- [ ] 测试状态控制:验证禁用的广告不显示
|
|
|
|
|
+- [ ] 测试多租户统一数据:验证不同租户用户看到相同广告数据
|
|
|
|
|
+- [ ] 测试广告类型获取:验证 `/api/v1/advertisement-types` 接口正常
|
|
|
|
|
+- [ ] 测试网络异常处理:验证API调用失败时的错误处理
|
|
|
|
|
+- [ ] 测试数据缓存:验证广告数据的缓存机制正常工作
|
|
|
|
|
+- [ ] 更新测试策略文档,添加小程序E2E测试规范
|
|
|
|
|
+
|
|
|
|
|
+**相关文件**: `docs/stories/010.008.story.md`
|
|
|
|
|
+
|
|
|
|
|
+**测试覆盖**:
|
|
|
|
|
+- API调用和数据获取
|
|
|
|
|
+- 广告图片显示和加载
|
|
|
|
|
+- 广告点击和跳转
|
|
|
|
|
+- 位置和状态过滤
|
|
|
|
|
+- 多租户数据统一性
|
|
|
|
|
+- 错误处理和缓存
|
|
|
|
|
+
|
|
|
## 兼容性要求
|
|
## 兼容性要求
|
|
|
|
|
|
|
|
- [x] 现有广告API端点保持向后兼容(或提供适配层)
|
|
- [x] 现有广告API端点保持向后兼容(或提供适配层)
|
|
@@ -576,7 +663,7 @@ export const adminUnifiedAdApiRoutes = api.route('/api/v1/admin/unified-advertis
|
|
|
## 验收标准
|
|
## 验收标准
|
|
|
|
|
|
|
|
### 完成定义 (Definition of Done)
|
|
### 完成定义 (Definition of Done)
|
|
|
-- [x] 所有故事完成且验收标准满足
|
|
|
|
|
|
|
+- [ ] 所有故事完成且验收标准满足(Story 7、8 进行中)
|
|
|
- [x] 现有功能通过测试验证
|
|
- [x] 现有功能通过测试验证
|
|
|
- [x] 集成点正常工作
|
|
- [x] 集成点正常工作
|
|
|
- [x] 文档适当更新
|
|
- [x] 文档适当更新
|
|
@@ -588,13 +675,17 @@ export const adminUnifiedAdApiRoutes = api.route('/api/v1/admin/unified-advertis
|
|
|
3. [x] Admin后台不再显示广告管理入口
|
|
3. [x] Admin后台不再显示广告管理入口
|
|
|
4. [x] API端点正常工作且返回正确数据
|
|
4. [x] API端点正常工作且返回正确数据
|
|
|
5. [x] 权限控制正确(只有超级管理员可管理)
|
|
5. [x] 权限控制正确(只有超级管理员可管理)
|
|
|
|
|
+6. [ ] 租户后台UI交互E2E测试覆盖完整流程(Story 7)
|
|
|
|
|
+7. [ ] 小程序端广告展示E2E测试验证通过(Story 8)
|
|
|
|
|
|
|
|
### 技术验收
|
|
### 技术验收
|
|
|
1. [x] 所有单元测试通过
|
|
1. [x] 所有单元测试通过
|
|
|
2. [x] 集成测试通过
|
|
2. [x] 集成测试通过
|
|
|
-3. [x] 代码符合项目编码规范
|
|
|
|
|
-4. [x] 无TypeScript类型错误
|
|
|
|
|
-5. [x] ESLint检查通过
|
|
|
|
|
|
|
+3. [ ] 租户后台UI交互E2E测试通过(Story 7)
|
|
|
|
|
+4. [ ] 小程序端广告展示E2E测试通过(Story 8)
|
|
|
|
|
+5. [x] 代码符合项目编码规范
|
|
|
|
|
+6. [x] 无TypeScript类型错误
|
|
|
|
|
+7. [x] ESLint检查通过
|
|
|
|
|
|
|
|
## 参考文档
|
|
## 参考文档
|
|
|
|
|
|