|
@@ -39,6 +39,15 @@ Draft
|
|
|
- [x] 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
- [x] 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
|
- [x] 编写单元测试(放在 tests/unit/)
|
|
- [x] 编写单元测试(放在 tests/unit/)
|
|
|
|
|
|
|
|
|
|
+- [ ] 创建 shared-test-util package (测试基础设施依赖)
|
|
|
|
|
+ - [ ] 创建 package.json 配置
|
|
|
|
|
+ - [ ] 创建集成测试数据库工具(integration-test-db.ts)
|
|
|
|
|
+ - [ ] 创建通用集成测试断言工具(integration-test-utils.ts)
|
|
|
|
|
+ - [ ] 创建测试生命周期钩子(setup-hooks.ts)
|
|
|
|
|
+ - [ ] 创建通用单元测试mock工具(mock-utils.ts)
|
|
|
|
|
+ - [ ] 配置 TypeScript 编译选项(包含 `"composite": true`)
|
|
|
|
|
+ - [ ] 编写基础测试
|
|
|
|
|
+
|
|
|
- [x] 创建 shared-crud package (AC: 3)
|
|
- [x] 创建 shared-crud package (AC: 3)
|
|
|
- [x] 创建 package.json 配置
|
|
- [x] 创建 package.json 配置
|
|
|
- [x] 迁移通用 CRUD 服务模式
|
|
- [x] 迁移通用 CRUD 服务模式
|
|
@@ -110,6 +119,7 @@ Draft
|
|
|
- **包管理**: pnpm workspace
|
|
- **包管理**: pnpm workspace
|
|
|
- **模块化架构**:
|
|
- **模块化架构**:
|
|
|
- **共享基础设施层**: shared-types → shared-utils → shared-crud
|
|
- **共享基础设施层**: shared-types → shared-utils → shared-crud
|
|
|
|
|
+ - **测试基础设施层**: shared-test-util (依赖 shared-utils)
|
|
|
- **业务模块层**: user-module → auth-module → file-module
|
|
- **业务模块层**: user-module → auth-module → file-module
|
|
|
- **应用层**: server
|
|
- **应用层**: server
|
|
|
- **模块边界**: 每个模块包包含完整的业务功能(实体、服务、路由)
|
|
- **模块边界**: 每个模块包包含完整的业务功能(实体、服务、路由)
|
|
@@ -190,6 +200,19 @@ Draft
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// shared-test-util package.json
|
|
|
|
|
+{
|
|
|
|
|
+ "name": "@d8d/shared-test-util",
|
|
|
|
|
+ "dependencies": {
|
|
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
|
|
+ "typeorm": "^0.3.20",
|
|
|
|
|
+ "vitest": "^3.2.4"
|
|
|
|
|
+ },
|
|
|
|
|
+ "peerDependencies": {
|
|
|
|
|
+ "hono": "^4.8.5"
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 业务模块层
|
|
// 业务模块层
|
|
|
// user-module package.json
|
|
// user-module package.json
|
|
|
{
|
|
{
|
|
@@ -199,6 +222,9 @@ Draft
|
|
|
"@d8d/shared-utils": "workspace:*",
|
|
"@d8d/shared-utils": "workspace:*",
|
|
|
"@d8d/shared-crud": "workspace:*",
|
|
"@d8d/shared-crud": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
"typeorm": "^0.3.20"
|
|
|
|
|
+ },
|
|
|
|
|
+ "devDependencies": {
|
|
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -210,6 +236,9 @@ Draft
|
|
|
"@d8d/shared-utils": "workspace:*",
|
|
"@d8d/shared-utils": "workspace:*",
|
|
|
"@d8d/user-module": "workspace:*",
|
|
"@d8d/user-module": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
"typeorm": "^0.3.20"
|
|
|
|
|
+ },
|
|
|
|
|
+ "devDependencies": {
|
|
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -221,6 +250,9 @@ Draft
|
|
|
"@d8d/shared-utils": "workspace:*",
|
|
"@d8d/shared-utils": "workspace:*",
|
|
|
"@d8d/shared-crud": "workspace:*",
|
|
"@d8d/shared-crud": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
"typeorm": "^0.3.20"
|
|
|
|
|
+ },
|
|
|
|
|
+ "devDependencies": {
|
|
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -422,6 +454,8 @@ Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
|
|
|
**依赖关系:**
|
|
**依赖关系:**
|
|
|
- shared-utils 依赖 shared-types
|
|
- shared-utils 依赖 shared-types
|
|
|
- shared-crud 依赖 shared-types 和 shared-utils
|
|
- shared-crud 依赖 shared-types 和 shared-utils
|
|
|
|
|
+- shared-test-util 依赖 shared-utils
|
|
|
- user-module 依赖 shared-types、shared-utils 和 shared-crud
|
|
- user-module 依赖 shared-types、shared-utils 和 shared-crud
|
|
|
- auth-module 依赖 shared-types、shared-utils 和 user-module
|
|
- auth-module 依赖 shared-types、shared-utils 和 user-module
|
|
|
|
|
+- 所有业务模块的测试依赖 shared-test-util
|
|
|
- 所有外部依赖版本与 packages/server 完全一致
|
|
- 所有外部依赖版本与 packages/server 完全一致
|