فهرست منبع

📝 docs(prd): add file management test coverage requirements

- add section 6 "File Management Test Coverage" with detailed test requirements
- update Definition of Done with file service test coverage targets (>70% unit, >90% integration)
- update scope validation from 4 to 6 stories

📝 docs(story): create story for file management test coverage

- add new story 001.006 for comprehensive file management testing
- define acceptance criteria for service, API, MinIO and UI testing
- outline tasks for implementing tests across service, API and UI layers
- include technical notes, testing strategy and risk assessment
yourname 2 ماه پیش
والد
کامیت
78f53aef94
2فایلهای تغییر یافته به همراه140 افزوده شده و 2 حذف شده
  1. 23 2
      docs/prd/epic-001-test-infrastructure.md
  2. 117 0
      docs/stories/001.006.story.md

+ 23 - 2
docs/prd/epic-001-test-infrastructure.md

@@ -49,6 +49,25 @@
    - 实现完整的E2E用户工作流测试
    - 确保管理功能稳定性和用户体验
 
+6. **文件管理测试覆盖**
+   - **Admin文件管理界面测试**
+     - 文件上传/下载功能集成测试
+     - 文件列表和搜索功能E2E测试
+     - 文件操作(重命名、删除)工作流测试
+   - **文件服务层单元测试** (当前覆盖率12%,目标>70%)
+     - FileService核心方法测试
+     - MinioService集成测试
+     - 文件上传/下载/删除操作测试
+   - **文件API端点集成测试** (当前覆盖率82%,目标>90%)
+     - 文件上传策略API测试
+     - 文件下载URL生成测试
+     - 文件删除操作测试
+     - 文件元数据管理测试
+   - **MinIO存储服务集成测试**
+     - 文件存储验证测试
+     - 预签名URL生成测试
+     - 多部分上传功能测试
+
 ## Compatibility Requirements
 
 - [x] 现有API接口保持不变
@@ -75,18 +94,20 @@
 
 ## Definition of Done
 
-- [ ] 所有4个story完成且验收标准满足
+- [ ] 所有6个story完成且验收标准满足
 - [ ] 现有功能通过测试验证无回归
 - [ ] 测试集成点工作正常
 - [ ] 测试文档和指南更新完成
 - [ ] 测试覆盖率达标(单元测试 > 70%, 集成测试 > 50%)
+- [ ] 文件服务层单元测试覆盖率 > 70%
+- [ ] 文件API端点集成测试覆盖率 > 90%
 - [ ] CI/CD流水线集成测试执行正常
 - [ ] 数据库备份恢复机制完善且测试通过
 
 ## Validation Checklist
 
 ### Scope Validation
-- [x] Epic可在4个story内完成
+- [x] Epic可在6个story内完成
 - [x] 架构文档已更新包含备份策略
 - [x] 增强遵循现有模式和流程
 - [x] 集成复杂度可控

+ 117 - 0
docs/stories/001.006.story.md

@@ -0,0 +1,117 @@
+# Story 001.006: 文件管理测试覆盖
+
+## Status
+Ready for Development
+
+## Story
+**As a** 开发人员
+**I want** 完整的文件管理功能测试覆盖
+**so that** 确保文件上传、下载、管理功能的稳定性和可靠性
+
+## Acceptance Criteria
+- [ ] **文件服务层单元测试覆盖** (目标 > 70%)
+  - FileService核心方法测试(createFile, deleteFile, getFileUrl, getFileDownloadUrl)
+  - MinioService集成测试(generateUploadPolicy, getPresignedFileUrl, deleteObject)
+  - 文件操作异常场景测试
+
+- [ ] **文件API端点集成测试覆盖** (目标 > 90%)
+  - 文件上传策略API测试(POST /api/v1/files)
+  - 文件下载URL生成测试(GET /api/v1/files/{id}/download)
+  - 文件访问URL生成测试(GET /api/v1/files/{id}/url)
+  - 文件删除操作测试(DELETE /api/v1/files/{id})
+  - 文件列表和搜索功能测试
+
+- [ ] **MinIO存储服务集成测试**
+  - 文件存储验证测试
+  - 预签名URL生成验证
+  - 多部分上传功能测试
+
+- [ ] **Admin文件管理界面测试**
+  - 文件上传/下载功能集成测试
+  - 文件列表和搜索功能E2E测试
+  - 文件操作(重命名、删除)工作流测试
+
+- [ ] 测试覆盖率报告和监控集成
+- [ ] 所有测试通过且无回归
+- [ ] 遵循现有测试模式和代码规范
+
+## Tasks / Subtasks
+- [ ] 创建FileService单元测试文件
+- [ ] 创建MinioService单元测试文件
+- [ ] 创建文件API端点集成测试
+- [ ] 创建MinIO存储服务集成测试
+- [ ] 创建Admin文件管理界面集成测试
+- [ ] 配置测试环境和mock数据
+- [ ] 验证测试覆盖率达标
+- [ ] 集成到CI/CD流水线
+
+## Dev Notes
+### 技术栈 [基于现有架构]
+- **测试框架**: Vitest + Testing Library
+- **API测试**: Hono Testing Utilities
+- **数据库**: PostgreSQL + TypeORM
+- **文件存储**: MinIO
+- **前端测试**: React Testing Library + Playwright
+
+### 现有代码分析
+- **FileService**: 当前覆盖率12.32%,需要重点测试核心方法
+- **MinioService**: 当前覆盖率14.28%,需要集成测试
+- **文件API**: 当前覆盖率82%,需要完善异常测试
+- **Admin界面**: 已有Files.tsx组件,需要集成测试
+
+### 测试策略 [Source: architecture/testing-strategy.md]
+- 单元测试位于 `src/**/__tests__/` 目录
+- 集成测试位于 `src/**/__integration_tests__/` 目录
+- E2E测试使用Playwright
+- 遵循现有测试模式和结构
+
+### 测试环境要求
+- 需要MinIO测试实例或mock
+- 需要数据库测试数据
+- 需要认证上下文mock
+
+### 文件结构
+```
+项目根目录/
+  src/server/
+    modules/files/
+      __tests__/
+        file.service.test.ts          # FileService单元测试
+        minio.service.test.ts         # MinioService单元测试
+    api/files/
+      __tests__/
+        files.integration.test.ts     # 文件API集成测试
+    __integration_tests__/
+      minio.integration.test.ts       # MinIO集成测试
+  tests/e2e/
+    specs/admin/
+      files.spec.ts                   # Admin文件管理E2E测试
+```
+
+## Testing
+### 测试场景
+- 正常文件上传下载流程
+- 大文件上传测试
+- 文件权限验证
+- 异常场景测试(文件不存在、权限不足等)
+- 性能基准测试
+
+### 覆盖率目标
+- 文件服务层: > 70%
+- 文件API端点: > 90%
+- 整体测试覆盖率提升到达标水平
+
+## Change Log
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-20 | v1.0 | 初始故事创建 | Sarah |
+
+## Risk Assessment
+**高风险**:
+- MinIO集成测试可能依赖外部服务
+- 文件操作涉及异步流程,测试复杂度较高
+
+**缓解策略**:
+- 使用mock和stub减少外部依赖
+- 分阶段实施,先单元测试后集成测试
+- 充分的错误处理和回滚机制