Parcourir la source

📝 docs(story): add story for utility tests migration

- 创建"迁移工具类单元测试"故事文档
- 定义从web/tests迁移到packages/server/tests的目标和验收标准
- 列出迁移backup和restore工具测试的具体任务
- 添加技术栈、项目结构和测试策略等开发说明
yourname il y a 4 semaines
Parent
commit
01bbceebaf
1 fichiers modifiés avec 97 ajouts et 0 suppressions
  1. 97 0
      docs/stories/005.003.story.md

+ 97 - 0
docs/stories/005.003.story.md

@@ -0,0 +1,97 @@
+# Story 005.003: 迁移工具类单元测试
+
+## Status
+Draft
+
+## Story
+**As a** 开发人员,
+**I want** 将工具类单元测试从 web/tests 迁移到 packages/server/tests 目录,
+**so that** packages/server 成为一个真正独立的、可测试的库包,工具类测试与源代码在同一包内管理
+
+## Acceptance Criteria
+1. 迁移 backup 工具测试
+2. 迁移 restore 工具测试
+3. 验证迁移后测试正常运行
+
+## Tasks / Subtasks
+- [ ] 创建 packages/server/tests/unit/utils 目录结构 (AC: 1,2)
+  - [ ] 创建目录 packages/server/tests/unit/utils/
+- [ ] 迁移 backup 工具测试 (AC: 1)
+  - [ ] 复制 web/tests/unit/server/utils/backup.test.ts 内容
+  - [ ] 更新导入路径为 @d8d/server/utils/backup
+  - [ ] 验证测试通过
+- [ ] 迁移 restore 工具测试 (AC: 2)
+  - [ ] 复制 web/tests/unit/server/utils/restore.test.ts 内容
+  - [ ] 更新导入路径为 @d8d/server/utils/restore
+  - [ ] 验证测试通过
+- [ ] 验证迁移后测试正常运行 (AC: 5)
+  - [ ] 运行所有工具类测试
+  - [ ] 检查测试覆盖率
+  - [ ] 确保没有测试失败
+
+## Dev Notes
+
+### 技术栈信息 [Source: architecture/tech-stack.md]
+- **测试框架**: Vitest 3.2.4
+- **运行时**: Node.js 20.18.3
+- **模块系统**: ES 模块
+- **数据库**: PostgreSQL 17 + TypeORM
+
+### 项目结构信息 [Source: architecture/source-tree.md]
+- **工具类位置**: packages/server/src/utils/
+  - backup.ts - 数据库备份工具
+  - restore.ts - 数据库恢复工具
+  - jwt.util.ts - JWT 工具
+  - logger.ts - 日志工具
+  - errorHandler.ts - 错误处理工具
+- **测试目录结构**: packages/server/tests/
+  - unit/ - 单元测试
+  - integration/ - 集成测试
+  - utils/ - 测试工具
+- **测试文件命名**: [module].test.ts
+
+### 测试策略信息 [Source: architecture/testing-strategy.md]
+- **单元测试位置**: tests/unit/**/*.test.{ts,js}
+- **覆盖率目标**: ≥ 80%
+- **测试标准**: 使用 Vitest 框架,遵循 Arrange-Act-Assert 模式
+- **测试命名**: 使用「应该...」格式描述测试行为
+
+### 工具类功能分析
+- **backup.ts**: 数据库备份工具,包含单例模式、定时备份、文件清理等功能
+- **restore.ts**: 数据库恢复工具,包含备份文件查找、恢复操作等功能
+- **注意**: 当前 web/tests 中只有 backup 和 restore 工具类的单元测试,其他工具类暂时没有专门的单元测试文件
+
+### 迁移注意事项
+- 保持测试功能对等,迁移前后测试覆盖相同功能
+- 更新导入路径为 @d8d/server 包内路径
+- 确保 mock 和依赖注入正确配置
+- 验证测试在 packages/server 环境中正常运行
+
+### Testing
+- **测试文件位置**: packages/server/tests/unit/utils/
+- **测试框架**: Vitest
+- **测试模式**: 单元测试,完全 mock 外部依赖
+- **覆盖率要求**: 工具类测试覆盖率 ≥ 80%
+- **测试标准**:
+  - 使用 vi.mock() 进行依赖 mock
+  - 遵循 Arrange-Act-Assert 模式
+  - 包含边界条件和错误场景测试
+  - 测试文件命名: [tool-name].test.ts
+
+## Change Log
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-11-09 | 1.1 | 简化范围,只迁移现有测试文件 | Bob (Scrum Master) |
+| 2025-11-09 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
+
+## Dev Agent Record
+
+### Agent Model Used
+
+### Debug Log References
+
+### Completion Notes List
+
+### File List
+
+## QA Results