| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import { vi } from 'vitest'
- // 全局模拟配置 - 模拟真实的 Agora RTM SDK
- vi.mock('agora-rtm', () => {
- const mockRTM = {
- RTM: vi.fn((appId: string, userId: string, config: any) => ({
- login: vi.fn().mockResolvedValue(undefined),
- logout: vi.fn().mockResolvedValue(undefined),
- subscribe: vi.fn().mockResolvedValue(undefined),
- unsubscribe: vi.fn().mockResolvedValue(undefined),
- addEventListener: vi.fn(),
- removeEventListener: vi.fn(),
- presence: {
- setState: vi.fn().mockResolvedValue(undefined),
- whoNow: vi.fn().mockResolvedValue({ totalOccupancy: 1 }),
- },
- storage: {
- setChannelMetadata: vi.fn().mockResolvedValue(undefined),
- removeChannelMetadata: vi.fn().mockResolvedValue(undefined),
- },
- lock: {
- setLock: vi.fn().mockResolvedValue(undefined),
- acquireLock: vi.fn().mockResolvedValue(undefined),
- releaseLock: vi.fn().mockResolvedValue(undefined),
- getLock: vi.fn().mockResolvedValue({ lockDetails: [] }),
- },
- })),
- }
- // 返回包含默认导出的对象
- return {
- default: mockRTM,
- ...mockRTM,
- }
- })
- // 模拟 fetch API
- const mockFetch = vi.fn()
- global.fetch = mockFetch
- // 设置默认的 fetch 响应
- mockFetch.mockResolvedValue({
- ok: true,
- status: 200,
- json: vi.fn().mockResolvedValue({
- tokenName: 'test-token',
- taskId: 'test-task-id',
- }),
- })
- // 全局测试配置
- global.console = {
- ...console,
- debug: vi.fn(),
- log: vi.fn(),
- error: vi.fn(),
- warn: vi.fn(),
- }
|