Skip to content

前端测试派发计划

🕒 Published at:

前端测试派发计划 ​

目标:将 web/user 和 web/admin 的前端测试覆盖率从当前 155 个用例提升到 500+

当前状态 ​

模块已有测试待补
web/user utilsauth, videoCard, safeStorage, liveMeetingStatus, clipboard, drafts, currentUseradminPage, echartsCore, expNotify, notification, reconnectingWs, userId
web/user storeuser, teriteriindex
web/user composables无18 个 composable 全部待补
web/user componentsLoginRegister (5)其余 379 个组件待补
web/admin utilsauthadminPage, echartsCore, liveMeetingStatus, safeStorage, toWebP
web/admin storeadmin无
web/admin composables无useAdminLiveRooms

派发任务 ​

Agent 1: web/user utils 补齐 ​

目标文件: 新建以下测试文件

  1. web/user/app/utils/notification.test.ts

    • requestNotificationPermission: 已授权/未授权/被拒绝
    • isNotificationSupported: 支持/不支持
    • isNotificationEnabled: granted/non-granted
    • showNotification: 正常显示/无权限
    • notifyStreamLive/notifyMention: 参数传递
  2. web/user/app/utils/reconnectingWs.test.ts

    • createReconnectingWS: 创建连接
    • send: 连接打开/关闭
    • close: 主动关闭
    • isOpen: 状态检查
    • 重连逻辑:指数退避、最大重试、心跳
  3. web/user/app/utils/expNotify.test.ts

    • refreshUserWithNotify: 升级/获得经验/无变化/未登录
    • mock userApi.getUserById
  4. web/user/app/utils/currentUser.test.ts(已有,确认覆盖)

  5. web/user/app/utils/userId.test.ts(如存在导出函数)

技术要求:

  • vitest + happy-dom
  • mock WebSocket:vi.fn() + 手动触发 onopen/onmessage/onclose
  • mock Notification API:vi.fn() 替换 window.Notification
  • 测试文件放被测文件同目录

Agent 2: web/user composables 补齐 ​

目标文件: 新建以下测试文件

  1. web/user/app/composables/useAuth.test.ts
  2. web/user/app/composables/useLiveRoomPlayer.test.ts
  3. web/user/app/composables/useLiveRoomRealtime.test.ts
  4. web/user/app/composables/useLiveRoomList.test.ts
  5. web/user/app/composables/useLiveRoomSession.test.ts
  6. web/user/app/composables/useLiveRoomFollow.test.ts
  7. web/user/app/composables/useLiveRoomInteractions.test.ts
  8. web/user/app/composables/useLivePushRoomSetup.test.ts
  9. web/user/app/composables/useLivePushRoomControls.test.ts
  10. web/user/app/composables/useLivePushAudienceMonitor.test.ts
  11. web/user/app/composables/useLiveLinkmic.test.ts
  12. web/user/app/composables/useCreatorStats.test.ts
  13. web/user/app/composables/useChunkedManuscriptUpload.test.ts
  14. web/user/app/composables/usePeerConnectionMesh.test.ts
  15. web/user/app/composables/useWhipPublisher.test.ts
  16. web/user/app/composables/usePrefetch.test.ts
  17. web/user/app/composables/useTabsVideoAlign.test.ts
  18. web/user/app/composables/useZoomCompact.test.ts

技术要求:

  • 每个 composable 需要先读源码了解依赖
  • mock API 调用:vi.mock('@/api/client')
  • mock WebSocket/WebRTC 等浏览器 API
  • 测试 setup/teardown(onMounted/onUnmounted)
  • 测试文件放 composables 目录下

Agent 3: web/admin utils 补齐 ​

目标文件: 新建以下测试文件

  1. web/admin/app/utils/adminPage.test.ts
  2. web/admin/app/utils/echartsCore.test.ts
  3. web/admin/app/utils/liveMeetingStatus.test.ts
  4. web/admin/app/utils/safeStorage.test.ts
  5. web/admin/app/utils/toWebP.test.ts
  6. web/admin/app/composables/useAdminLiveRooms.test.ts

技术要求:

  • 先读每个源码文件了解导出函数
  • 纯函数直接测试,有依赖的 mock
  • 测试文件放被测文件同目录

注意事项 ​

  1. 不要修改任何已有文件
  2. 每个测试文件顶部加 vitest import:import { describe, it, expect, vi, beforeEach } from 'vitest'
  3. Store 测试需要初始化 Pinia:setActivePinia(createPinia())
  4. Mock 外部依赖:axios, element-plus, @/api/* 等
  5. 写完每个文件后验证:cd /home/a1/mybilibili/web/user && npx vitest run app/xxx/xxx.test.ts
  6. 最终全量验证:npx vitest run