feat: 完善知识库批量导入与公共 API
- 新增批量异步导入、状态查询、失败重试与中断恢复链路 - 拆分知识库读取、导入、维护权限并完善 Public API 契约 - 补充数据库迁移、管理端交互、接口说明与相关测试
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { resolveDocumentUploadResponse } from './document-import-upload-response';
|
||||
|
||||
const fallbackMessage = '文件上传失败';
|
||||
|
||||
describe('resolveDocumentUploadResponse', () => {
|
||||
it.each([
|
||||
['数字错误码', '{"errorCode":0}'],
|
||||
['字符串错误码', '{"errorCode":"0"}'],
|
||||
['兼容 code 字段', '{"code":0}'],
|
||||
['带 BOM 的响应', '\uFEFF{"errorCode":0}'],
|
||||
])('接受%s', (_name, responseText) => {
|
||||
expect(
|
||||
resolveDocumentUploadResponse({
|
||||
fallbackMessage,
|
||||
responseText,
|
||||
status: 200,
|
||||
}),
|
||||
).toEqual({ success: true });
|
||||
});
|
||||
|
||||
it('接受无响应体的 204 响应', () => {
|
||||
expect(
|
||||
resolveDocumentUploadResponse({
|
||||
fallbackMessage,
|
||||
responseText: '',
|
||||
status: 204,
|
||||
}),
|
||||
).toEqual({ success: true });
|
||||
});
|
||||
|
||||
it('返回业务错误消息', () => {
|
||||
expect(
|
||||
resolveDocumentUploadResponse({
|
||||
fallbackMessage,
|
||||
responseText: '{"errorCode":4091,"message":"文件已存在"}',
|
||||
status: 409,
|
||||
}),
|
||||
).toEqual({
|
||||
message: '文件已存在',
|
||||
success: false,
|
||||
});
|
||||
});
|
||||
|
||||
it('拒绝成功状态下的未知响应格式', () => {
|
||||
expect(
|
||||
resolveDocumentUploadResponse({
|
||||
fallbackMessage,
|
||||
responseText: 'binary-response',
|
||||
status: 200,
|
||||
}),
|
||||
).toEqual({
|
||||
message: fallbackMessage,
|
||||
success: false,
|
||||
});
|
||||
});
|
||||
|
||||
it('拒绝缺少成功错误码的空响应', () => {
|
||||
expect(
|
||||
resolveDocumentUploadResponse({
|
||||
fallbackMessage,
|
||||
responseText: '',
|
||||
status: 200,
|
||||
}),
|
||||
).toEqual({
|
||||
message: fallbackMessage,
|
||||
success: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user