Explorar o código

✅ test(agora): 完善Agora Token API集成测试

- 修改注释从"模拟AgoraTokenService"为更通用的"模拟模块"
- 添加auth.middleware的模拟实现
- 为所有测试请求添加Authorization请求头
- 确保测试覆盖认证流程和token生成场景
yourname hai 4 meses
pai
achega
1b9932955a

+ 19 - 2
src/server/api/agora/__tests__/agora-token.integration.test.ts

@@ -4,7 +4,7 @@ import { agoraApiRoutes } from '@/server/api'
 import { AgoraTokenService } from '@/server/modules/agora/agora-token.service'
 import { authMiddleware } from '@/server/middleware/auth.middleware'
 
-// 模拟AgoraTokenService
+// 模拟模块
 vi.mock('@/server/modules/agora/agora-token.service', () => ({
   AgoraTokenService: vi.fn().mockImplementation(() => ({
     generateRtcToken: vi.fn().mockReturnValue('mock-rtc-token'),
@@ -18,7 +18,9 @@ vi.mock('@/server/modules/agora/agora-token.service', () => ({
       generatedAt: Math.floor(Date.now() / 1000)
     }))
   }))
-}))
+}));
+
+vi.mock('@/server/middleware/auth.middleware');
 
 // Mock用户数据
 const mockUser = {
@@ -147,6 +149,11 @@ describe('Agora Token API 集成测试', () => {
   test('认证用户生成RTC Token成功', async () => {
     const response = await client.agora.token.$get({
       query: { type: 'rtc', channel: 'test-channel' }
+    },
+    {
+      headers: {
+        'Authorization': 'Bearer test-token'
+      }
     })
 
     expect(response.status).toBe(200)
@@ -163,6 +170,11 @@ describe('Agora Token API 集成测试', () => {
   test('认证用户生成RTM Token成功', async () => {
     const response = await client.agora.token.$get({
       query: { type: 'rtm', userId: 'test-user-123' }
+    },
+    {
+      headers: {
+        'Authorization': 'Bearer test-token'
+      }
     })
 
     expect(response.status).toBe(200)
@@ -179,6 +191,11 @@ describe('Agora Token API 集成测试', () => {
     // 使用无效的type参数
     const response = await client.agora.token.$get({
       query: { type: 'rtc' as any, channel: 'test-channel' }
+    },
+    {
+      headers: {
+        'Authorization': 'Bearer test-token'
+      }
     })
 
     // 由于Zod验证,应该返回400错误