71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import { describe, test, expect, vi } from 'vitest';
|
|
import { createAdapter } from 'src/adapter';
|
|
import { noop } from 'scripts/test.utils';
|
|
|
|
describe('src/adapter.ts', () => {
|
|
test('应该抛出异常', () => {
|
|
expect(() =>
|
|
createAdapter(undefined as any),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
'"[axios-miniprogram]: platform 不是一个 object"',
|
|
);
|
|
expect(() => createAdapter({} as any)).toThrowErrorMatchingInlineSnapshot(
|
|
'"[axios-miniprogram]: request 不是一个 function"',
|
|
);
|
|
expect(() =>
|
|
createAdapter({ request: vi.fn() } as any),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
'"[axios-miniprogram]: upload 不是一个 function"',
|
|
);
|
|
expect(() =>
|
|
createAdapter({ request: vi.fn(), upload: vi.fn() } as any),
|
|
).toThrowErrorMatchingInlineSnapshot(
|
|
'"[axios-miniprogram]: download 不是一个 function"',
|
|
);
|
|
});
|
|
|
|
test('应该可以成功执行对应的平台函数', () => {
|
|
const p = {
|
|
request: vi.fn(),
|
|
upload: vi.fn(),
|
|
download: vi.fn(),
|
|
};
|
|
const a = createAdapter(p);
|
|
const r = {
|
|
type: 'request' as const,
|
|
url: 'test',
|
|
method: 'GET' as const,
|
|
success: noop,
|
|
fail: noop,
|
|
};
|
|
const u = {
|
|
type: 'upload' as const,
|
|
url: 'test',
|
|
method: 'POST' as const,
|
|
data: {},
|
|
success: noop,
|
|
fail: noop,
|
|
};
|
|
const d = {
|
|
type: 'download' as const,
|
|
url: 'test',
|
|
method: 'GET' as const,
|
|
params: { filePath: '' },
|
|
success: noop,
|
|
fail: noop,
|
|
};
|
|
|
|
expect(p.request).not.toBeCalled();
|
|
a(r);
|
|
expect(p.request).toBeCalled();
|
|
|
|
expect(p.upload).not.toBeCalled();
|
|
a(u);
|
|
expect(p.upload).toBeCalled();
|
|
|
|
expect(p.download).not.toBeCalled();
|
|
a(d);
|
|
expect(p.download).toBeCalled();
|
|
});
|
|
});
|