镜像自地址
https://github.com/lhly/cloud-drive-renamer.git
已同步 2026-10-20 05:37:47 +08:00
67 行
1.7 KiB
TypeScript
67 行
1.7 KiB
TypeScript
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
||
import { BaiduAdapter } from '../../../src/adapters/baidu/baidu-adapter';
|
||
|
||
describe('BaiduAdapter', () => {
|
||
let adapter: BaiduAdapter;
|
||
let mockFetch: any;
|
||
|
||
beforeEach(() => {
|
||
adapter = new BaiduAdapter({ requestInterval: 0 });
|
||
|
||
// Mock global fetch used by BasePlatformAdapter.fetchWithTimeout
|
||
mockFetch = vi.fn();
|
||
global.fetch = mockFetch;
|
||
|
||
// Avoid relying on MAIN-world injector in unit tests
|
||
vi.spyOn(adapter as any, 'extractBdstoken').mockResolvedValue('mock-token');
|
||
vi.spyOn(adapter as any, 'rateLimit').mockResolvedValue(undefined);
|
||
});
|
||
|
||
afterEach(() => {
|
||
vi.restoreAllMocks();
|
||
});
|
||
|
||
describe('getAllFiles', () => {
|
||
it('应该支持 /api/list 顶层 list 响应结构(errno=0)', async () => {
|
||
mockFetch.mockResolvedValue({
|
||
json: async () => ({
|
||
errno: 0,
|
||
list: [
|
||
{
|
||
path: '/test/a.txt',
|
||
server_filename: 'a.txt',
|
||
fs_id: 1,
|
||
md5: 'x',
|
||
isdir: 0,
|
||
size: 10,
|
||
server_mtime: 1700000000,
|
||
},
|
||
{
|
||
path: '/test/folder',
|
||
server_filename: 'folder',
|
||
fs_id: 2,
|
||
md5: 'y',
|
||
isdir: 1,
|
||
size: 0,
|
||
server_mtime: 1700000001,
|
||
},
|
||
],
|
||
}),
|
||
});
|
||
|
||
const files = await adapter.getAllFiles('/test');
|
||
|
||
expect(files).toHaveLength(1);
|
||
expect(files[0]).toEqual({
|
||
id: '1',
|
||
name: 'a.txt',
|
||
ext: '.txt',
|
||
parentId: '/test',
|
||
size: 10,
|
||
mtime: 1700000000 * 1000,
|
||
});
|
||
});
|
||
});
|
||
});
|
||
|