Bläddra i källkod

✅ test(order-module): 更新人才就业信息集成测试以适配新的API参数格式

- 调整JWTUtil.generateToken调用,将personId和userType参数移至第二个options参数
- 更新所有API调用,将查询参数包装在query对象中,以匹配新的API接口格式
- 确保测试用例能够正确传递分页参数和过滤条件

📝 docs(prd): 更新史诗015进度文档

- 更新故事015-02和015-03的验收标准为已完成状态
- 更新总体进度和MVP进度统计
- 更新最近更新记录,反映故事完成情况
yourname 3 veckor sedan
förälder
incheckning
448dd1b1ac

+ 36 - 20
allin-packages/order-module/tests/integration/talent-employment.integration.test.ts

@@ -92,9 +92,10 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
     testToken = JWTUtil.generateToken({
       id: testTalentUser.id,
       username: testTalentUser.username,
-      personId: testDisabledPerson.id,
-      userType: UserType.TALENT,
       roles: [{ name: 'talent' }]
+    }, {
+      personId: testDisabledPerson.id,
+      userType: UserType.TALENT as any
     });
 
     // 创建测试平台
@@ -210,8 +211,9 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
       const token = JWTUtil.generateToken({
         id: userWithoutPerson.id,
         username: userWithoutPerson.username,
-        userType: UserType.TALENT,
         roles: [{ name: 'talent' }]
+      }, {
+        userType: UserType.TALENT as any
       });
 
       const response = await client.employment.status.$get(undefined, {
@@ -260,8 +262,10 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该成功查询薪资记录', async () => {
       const response = await client.employment['salary-records'].$get({
-        skip: 0,
-        take: 10
+        query: {
+          skip: 0,
+          take: 10
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -283,9 +287,11 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该支持按月份过滤薪资记录', async () => {
       const response = await client.employment['salary-records'].$get({
-        month: '2025-01',
-        skip: 0,
-        take: 10
+        query: {
+          month: '2025-01',
+          skip: 0,
+          take: 10
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -353,8 +359,10 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该成功查询就业历史,按时间倒序排列', async () => {
       const response = await client.employment['history'].$get({
-        skip: 0,
-        take: 20
+        query: {
+          skip: 0,
+          take: 20
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -381,8 +389,10 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该支持分页查询就业历史', async () => {
       const response = await client.employment['history'].$get({
-        skip: 0,
-        take: 1
+        query: {
+          skip: 0,
+          take: 1
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -440,8 +450,10 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该成功查询薪资视频', async () => {
       const response = await client.employment['salary-videos'].$get({
-        skip: 0,
-        take: 10
+        query: {
+          skip: 0,
+          take: 10
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -463,9 +475,11 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该支持按类型过滤薪资视频', async () => {
       const response = await client.employment['salary-videos'].$get({
-        assetType: 'salary_video',
-        skip: 0,
-        take: 10
+        query: {
+          assetType: 'salary_video',
+          skip: 0,
+          take: 10
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`
@@ -482,9 +496,11 @@ describe('人才就业信息API集成测试 - 故事015.005', () => {
 
     it('应该支持按月份过滤薪资视频', async () => {
       const response = await client.employment['salary-videos'].$get({
-        month: '2025-01',
-        skip: 0,
-        take: 10
+        query: {
+          month: '2025-01',
+          skip: 0,
+          take: 10
+        }
       }, {
         headers: {
           'Authorization': `Bearer ${testToken}`

+ 13 - 12
docs/prd/epic-015-talent-mini-program-api-support.md

@@ -108,7 +108,6 @@
 5. 更新认证中间件,支持人才用户身份识别
 6. 编写单元测试和集成测试
 
-**验收标准:**
 - [x] 人才用户可使用身份证号/残疾证号和密码成功登录
 - [x] 人才用户登录后可获取包含人才详情的用户信息
 - [x] 人才用户可成功退出登录
@@ -116,6 +115,7 @@
 - [x] 人才用户权限验证逻辑正确
 - [x] 所有新增接口通过单元测试和集成测试(16/16通过)
 - [x] API文档完整,包含OpenAPI定义和TypeScript类型
+
 **状态:** ✅ 完成 (2025-12-25)
 
 ### 故事015-03:个人信息管理API
@@ -137,11 +137,12 @@
 4. 编写单元测试和集成测试
 
 **验收标准:**
-- [ ] 个人信息查询接口返回正确的人才基本信息
-- [ ] 银行卡信息查询接口返回银行卡信息(卡号脱敏处理)
-- [ ] 证件照片查询接口返回证件照片信息
-- [ ] 所有接口验证用户权限,确保用户只能查询自己的数据
-- [ ] 所有接口通过单元测试和集成测试
+- [x] 个人信息查询接口返回正确的人才基本信息
+- [x] 银行卡信息查询接口返回银行卡信息(卡号脱敏处理)
+- [x] 证件照片查询接口返回证件照片信息
+- [x] 所有接口验证用户权限,确保用户只能查询自己的数据
+- [x] 所有接口通过单元测试和集成测试(11/11通过)
+**状态:** ✅ 完成 (2025-12-25)
 
 ### 故事015-04:考勤记录API(P2 - 延期,打卡功能前端模拟)
 **背景:** 人才用户需要查看考勤记录、考勤统计和打卡明细。当前打卡功能为前端模拟实现,待后续确定真实打卡接口逻辑后再实现后端API。
@@ -395,12 +396,12 @@
 
 ## 史诗进度
 
-**当前状态:** 史诗规划阶段,所有故事待实现。
+**当前状态:** 史诗执行阶段,3个核心故事已完成,5个核心故事待实现。
 
 **故事完成状态:**
 - [x] **故事015-01**:数据库schema扩展 - **已完成** ✅(打卡字段延期)
-- [ ] **故事015-02**:人才用户认证API扩展 - **待实现**
-- [ ] **故事015-03**:个人信息管理API - **待实现**
+- [x] **故事015-02**:人才用户认证API扩展 - **已完成** ✅
+- [x] **故事015-03**:个人信息管理API - **已完成** ✅
 - [ ] **故事015-04**:考勤记录API - **P2 - 延期**(打卡功能前端模拟)
 - [ ] **故事015-05**:就业信息API - **待实现**
 - [ ] **故事015-06**:帮助与支持API - **待实现**
@@ -411,10 +412,10 @@
 - [ ] **故事015-11**:高级功能与优化 - **P2 - 延期**(后期优化)
 - [ ] **故事015-12**:API文档与测试完善 - **冗余**(基础设施已覆盖)
 
-**总体进度:** 1/12 故事完成(8%)
-**MVP进度:** 1/8 核心故事完成(13%,排除015-04、015-08、015-11延期和015-12冗余)
+**总体进度:** 3/12 故事完成(25%)
+**MVP进度:** 3/8 核心故事完成(38%,排除015-04、015-08、015-11延期和015-12冗余)
 
-**最近更新:** 2025-12-24 - 故事015-01已完成:UserType枚举扩展、personId字段添加、TypeORM实体和Schema更新、测试通过。2025-12-23 - 更新史诗015:调整打卡功能相关API为延期状态(前端模拟实现)。故事015-01打卡字段延期,故事015-04、015-08标记为P2延期。2025-12-23 - 史诗015创建:为人才小程序提供完整的API接口支持,包含12个故事,覆盖登录认证、个人信息、考勤记录、就业信息、系统设置等功能。
+**最近更新:** 2025-12-25 - 故事015-03已完成:个人信息查询API、银行卡信息查询API(卡号脱敏)、证件照片查询API、所有11个集成测试通过。2025-12-25 - 故事015-02已完成:人才用户认证API、JWT登录、退出登录、获取用户信息、认证中间件、所有16个测试通过。2025-12-24 - 故事015-01已完成:UserType枚举扩展、personId字段添加、TypeORM实体和Schema更新、测试通过。
 
 ---