import MockAdapter from 'axios-mock-adapter'; | |
import { api } from './auth'; // 添加api导入 | |
import { createTorrent, getTorrents, getTorrentDetail, likeTorrent, addTorrentComment } from './torrent'; | |
describe('种子资源API', () => { | |
let mockAxios; | |
beforeEach(() => { | |
mockAxios = new MockAdapter(api); | |
}); | |
afterEach(() => { | |
mockAxios.restore(); | |
}); | |
describe('createTorrent - 创建种子', () => { | |
it('应该发送完整的种子数据', async () => { | |
const torrentData = { | |
torrentName: '测试种子', | |
description: '描述内容', | |
username: 'user1', | |
category: '电影', | |
region: '美国', | |
resolution: '1080p', | |
subtitle: '中文字幕', | |
filePath: '/path/to/file' | |
}; | |
mockAxios.onPost('/torrent', torrentData).reply(201, { code: 201 }); | |
const response = await createTorrent(...Object.values(torrentData)); | |
expect(response.status).toBe(201); | |
}); | |
}); | |
describe('getTorrentDetail - 获取种子详情', () => { | |
it('应该规范化返回的数据结构', async () => { | |
const mockData = { | |
data: { | |
post: { id: '123', name: '测试种子' }, | |
comments: [{ id: '1', content: '评论1' }] | |
} | |
}; | |
mockAxios.onGet('/torrent/123').reply(200, mockData); | |
const response = await getTorrentDetail('123'); | |
expect(response.data.data.torrent.name).toBe('测试种子'); | |
expect(response.data.data.comments).toHaveLength(1); | |
}); | |
}); | |
describe('likeTorrent - 点赞种子', () => { | |
it('应该成功发送点赞请求', async () => { | |
mockAxios.onPost('/torrent/t123/like').reply(200, { code: 200 }); | |
const response = await likeTorrent('t123'); | |
expect(response.status).toBe(200); | |
}); | |
}); | |
}); |