feat: complete staging seed coverage

This commit is contained in:
2026-01-26 09:51:48 +08:00
parent 619e17fc15
commit 51f88f23f9
2 changed files with 239 additions and 32 deletions

View File

@@ -1,13 +1,13 @@
# Implementation Plan: Staging Seed Data
# Implementation Plan: Staging Seed Full Coverage
**Branch**: `main` | **Date**: 2026-01-26 | **Spec**: `docs/staging_smoke_test.md`
**Input**: staging 冒烟测试需要快速准备基础数据。
**Input**: 全覆盖冒烟测试需要补齐 seed 数据。
**Note**: 本计划遵循 `docs/templates/plan-template.md`
## Summary
扩展 Go seed 命令,生成 staging 冒烟测试所需的最小数据集(租户、用户、超管、内容、订单、优惠券、通知等),确保前后台关键页面可快速验证
扩展 seed 数据覆盖冒烟测试未覆盖项:上传素材、交互记录、创作者流程完成态、财务账本/异常、退款/对账样例,并复核冒烟清单是否仍有缺口
## Technical Context
@@ -15,16 +15,16 @@
**Primary Dependencies**: Fiber, GORM-Gen
**Storage**: PostgreSQL + Redis
**Testing**: `go test ./...`
**Target Platform**: Linux server (staging)
**Project Type**: Web application (backend + frontend)
**Target Platform**: staging
**Project Type**: Web application
**Performance Goals**: N/A
**Constraints**: 不改生成文件Service/Controller 规范保持不变
**Scale/Scope**: 最小可用冒烟数据
**Constraints**: 不改生成文件seed 逻辑仅在 `backend/app/commands/seed/seed.go`
**Scale/Scope**: 覆盖冒烟清单全场景
## Constitution Check
- 遵循 `backend/llm.txt` 规则(不改生成文件、中文注释、服务层规范)
- seed 逻辑仅在 `backend/app/commands/seed/seed.go` 修改
- 遵循 `backend/llm.txt`
- 只改非生成文件
## Project Structure
@@ -42,35 +42,35 @@ backend/
└── app/commands/seed/seed.go
```
**Structure Decision**: 使用现有 seed 命令注入 staging 数据
**Structure Decision**: 继续扩展 seed 命令。
## Plan Phases
### Phase 1: 数据范围确认
- 明确需覆盖的冒烟用例与最小数据集
### Phase 1: 缺口确认
- 对照冒烟清单明确缺失数据类型
### Phase 2: Seed 扩展实现
- 增加超管用户、租户成员、订单与内容访问等基础数据
- 确保幂等运行(重复执行不报错)。
### Phase 2: Seed 扩展
- 添加交互记录、退款/对账样例、财务账本、异常/风控数据、创作者完成态、上传素材
### Phase 3: 文档与验证
- 记录 seed 运行方式与输出数据说明
### Phase 3: 复核
- 深度复查冒烟清单覆盖率并记录残余缺口
## Tasks
**Format**: `[ID] [P?] [Story] Description`
### Phase 1: Foundational
- [x] T001 [US0] 明确冒烟必需数据项(用户/租户/内容/订单/通知
### Phase 1
- [x] T001 [US0] 标记冒烟缺口(上传/交互/财务/退款/创作者
### Phase 2: Seed 扩展
- [x] T010 [US1] 创建超管用户与角色
- [x] T011 [US1] 创建租户成员与权限关系
- [x] T012 [US1] 创建订单、订单项、内容访问记录
- [x] T013 [US1] 创建通知模板/系统通知
### Phase 2
- [x] T010 [US1] 创建交互记录(点赞/收藏)
- [x] T011 [US1] 创建退款/对账样例订单
- [x] T012 [US1] 创建租户账本/异常数据
- [x] T013 [US1] 创建创作者审核通过与成员角色
- [x] T014 [US1] 创建上传素材示例数据
### Phase 3: Docs
- [x] T020 [US2] 更新 seed 说明文档/输出示例
### Phase 3
- [x] T020 [US2] 深度 review 冒烟清单覆盖率
## Dependencies
@@ -78,14 +78,12 @@ backend/
## Acceptance Criteria
- `go run ./backend/main.go seed` 可成功生成数据
- seed 后 staging 冒烟清单主要页面可打开并有数据展示
- 重复运行 seed 不产生致命错误。
- seed 后冒烟清单所有场景具备至少一条数据支撑
- 记录残余缺口(如必须手动步骤)
## Risks
- 真实 staging 数据冲突(唯一索引)
- 订单/访问数据缺失导致部分页面空白。
- staging 数据冲突导致重复创建失败
## Complexity Tracking