|
|
@@ -14,8 +14,9 @@ Draft
|
|
|
3. 在packages/server/src/index.ts中导入并注册所有Allin模块的路由
|
|
|
4. 在数据库初始化中注册所有Allin模块的实体
|
|
|
5. 验证所有API端点可以通过server访问
|
|
|
-6. 通过类型检查和基本测试验证
|
|
|
-7. 确保与现有模块的兼容性
|
|
|
+6. 在packages/server/tests/integration/中添加Allin模块的集成测试,只测试API路由连通性(不重复测试业务逻辑)
|
|
|
+7. 通过类型检查和基本测试验证
|
|
|
+8. 确保与现有模块的兼容性
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
- [ ] 分析packages/server的当前结构和依赖配置 (AC: 1)
|
|
|
@@ -123,17 +124,44 @@ Draft
|
|
|
- [ ] 验证认证中间件工作正常
|
|
|
- **测试方法**: 测试需要认证的端点
|
|
|
- **验证标准**: 未认证请求返回401,认证请求正常响应
|
|
|
-- [ ] 通过类型检查和基本测试验证 (AC: 6)
|
|
|
+- [ ] 在packages/server/tests/integration/中添加Allin模块的集成测试,只测试API路由连通性(不重复测试业务逻辑) (AC: 6)
|
|
|
+ - [ ] 创建`allin-modules.integration.test.ts`集成测试文件
|
|
|
+ - **文件位置**: `packages/server/tests/integration/allin-modules.integration.test.ts`
|
|
|
+ - **参考文件**: `packages/server/tests/integration/auth.integration.test.ts`
|
|
|
+ - **测试范围**: 只测试API路由连通性,不重复测试业务逻辑
|
|
|
+ - [ ] 编写渠道管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/channel/getAllChannels`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - **测试深度**: 只测试连通性,不测试具体业务逻辑
|
|
|
+ - [ ] 编写公司管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/company/getAllCompanies`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - [ ] 编写残疾人管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/disability/getAllDisabledPersons`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - [ ] 编写订单管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/order/getAllOrders`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - [ ] 编写平台管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/platform/getAllPlatforms`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - [ ] 编写薪资管理模块路由连通性测试
|
|
|
+ - **测试端点**: `GET /api/v1/salary/getAllSalaryLevels`
|
|
|
+ - **测试目的**: 验证路由注册正确,端点可访问
|
|
|
+ - [ ] 验证集成测试通过
|
|
|
+ - **命令**: `pnpm --filter @d8d/server test:integration`
|
|
|
+ - **验证标准**: 所有Allin模块路由连通性测试通过
|
|
|
+- [ ] 通过类型检查和基本测试验证 (AC: 7)
|
|
|
- [ ] 运行TypeScript类型检查
|
|
|
- **命令**: `pnpm --filter @d8d/server typecheck`
|
|
|
- **验证标准**: 无类型错误
|
|
|
- [ ] 运行server测试
|
|
|
- **命令**: `pnpm --filter @d8d/server test`
|
|
|
- - **验证标准**: 所有现有测试通过
|
|
|
+ - **验证标准**: 所有现有测试通过,包括新增的Allin模块路由测试
|
|
|
- [ ] 验证模块导入无错误
|
|
|
- **验证方法**: 检查编译输出
|
|
|
- **验证标准**: 成功编译,无导入错误
|
|
|
-- [ ] 确保与现有模块的兼容性 (AC: 7)
|
|
|
+- [ ] 确保与现有模块的兼容性 (AC: 8)
|
|
|
- [ ] 验证现有功能不受影响
|
|
|
- **测试现有API端点**:
|
|
|
- `GET /api/v1/users` - 用户管理
|
|
|
@@ -202,12 +230,18 @@ Draft
|
|
|
|
|
|
### 测试要求
|
|
|
- **测试框架**:Vitest
|
|
|
-- **测试类型**:集成测试,验证API端点可访问性
|
|
|
+- **测试类型**:集成测试,只测试API路由连通性(不重复测试业务逻辑)
|
|
|
- **测试工具**:使用testClient进行API测试
|
|
|
+- **测试文件**:`packages/server/tests/integration/allin-modules.integration.test.ts`
|
|
|
+- **测试范围**:
|
|
|
+ 1. **只测试路由连通性**:验证路由注册正确,端点可访问
|
|
|
+ 2. **不重复测试业务逻辑**:业务逻辑已在各自模块的集成测试中验证
|
|
|
+ 3. **测试认证中间件**:验证认证保护正常工作
|
|
|
+ 4. **测试路由路径**:验证`/api/v1/{module}`路径正确注册
|
|
|
- **验证重点**:
|
|
|
1. 路由注册正确性
|
|
|
2. 数据库实体初始化
|
|
|
- 3. API端点响应
|
|
|
+ 3. API端点连通性(响应状态码正确)
|
|
|
4. 认证中间件工作
|
|
|
5. 与现有模块兼容性
|
|
|
|
|
|
@@ -236,22 +270,26 @@ Draft
|
|
|
1. **依赖配置测试**:验证package.json依赖配置正确
|
|
|
2. **路由注册测试**:验证所有Allin模块路由正确注册
|
|
|
3. **实体初始化测试**:验证数据库实体成功注册
|
|
|
-4. **API端点测试**:验证关键API端点可访问
|
|
|
-5. **兼容性测试**:验证现有功能不受影响
|
|
|
-6. **认证测试**:验证认证中间件对Allin路由生效
|
|
|
+4. **API端点连通性测试**:验证关键API端点可访问(只测试连通性,不测试业务逻辑)
|
|
|
+5. **集成测试编写**:在`packages/server/tests/integration/`中添加`allin-modules.integration.test.ts`
|
|
|
+6. **兼容性测试**:验证现有功能不受影响
|
|
|
+7. **认证测试**:验证认证中间件对Allin路由生效
|
|
|
|
|
|
### 测试执行流程
|
|
|
1. 更新依赖配置后,运行`pnpm install`验证依赖解析
|
|
|
2. 更新路由注册后,运行TypeScript类型检查
|
|
|
3. 启动开发服务器,访问OpenAPI文档验证路由注册
|
|
|
-4. 测试关键API端点,验证响应正确性
|
|
|
-5. 运行现有测试套件,验证兼容性
|
|
|
-6. 检查测试覆盖率,确保不下降
|
|
|
+4. 编写`allin-modules.integration.test.ts`集成测试文件
|
|
|
+5. 运行集成测试,验证Allin模块路由连通性
|
|
|
+6. 测试关键API端点,验证响应正确性
|
|
|
+7. 运行现有测试套件,验证兼容性
|
|
|
+8. 检查测试覆盖率,确保不下降
|
|
|
|
|
|
## Change Log
|
|
|
| Date | Version | Description | Author |
|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-12-03 | 1.0 | 初始故事创建 | John (Product Manager) |
|
|
|
+| 2025-12-03 | 1.1 | 更新验收标准和任务,添加集成测试要求 | John (Product Manager) |
|
|
|
|
|
|
## Dev Agent Record
|
|
|
*此部分由开发代理在实现过程中填写*
|