89 lines
2.2 KiB
TypeScript
89 lines
2.2 KiB
TypeScript
import uploadFile from "../../src/api/uploadFile";
|
|
import { initailWithSpecificErrorTitle } from "./init";
|
|
|
|
beforeAll(()=>{
|
|
// 以下所有测试用例执行前,需提前执行初始化
|
|
initailWithSpecificErrorTitle();
|
|
})
|
|
|
|
describe("uploadFile", () =>{
|
|
test("send a normal uploadFile in callback way", (done) => {
|
|
expect.assertions(1);
|
|
const normalUploadFile = {
|
|
url: 'https://sample.com/success',
|
|
filePath: 'test.png',
|
|
name: 'test',
|
|
success: (res) => {
|
|
expect(res.isSuccess).toBe(true);
|
|
done();
|
|
}
|
|
}
|
|
uploadFile(normalUploadFile);
|
|
})
|
|
|
|
test("send a cgi error uploadFile in callback way", (done) => {
|
|
expect.assertions(1);
|
|
const cgiErrorRequest = {
|
|
url: "https://sample.com/cgiError",
|
|
filePath: 'test.png',
|
|
name: 'test',
|
|
fail: (res) => {
|
|
expect(res.data.errcode).toBe(-100);
|
|
done();
|
|
},
|
|
};
|
|
uploadFile(cgiErrorRequest);
|
|
});
|
|
|
|
test("send a success uploadFile and response is not json", (done) => {
|
|
expect.assertions(1);
|
|
const notJsonRequest = {
|
|
url: "https://sample.com/successButNotJson",
|
|
success: (res) => {
|
|
expect(res.isSuccess).toBe(true);
|
|
done();
|
|
},
|
|
};
|
|
uploadFile(notJsonRequest);
|
|
});
|
|
|
|
})
|
|
|
|
describe("mock uploadFile", () => {
|
|
test("try to get mock data", (done) => {
|
|
expect.assertions(1);
|
|
const mockRequest = {
|
|
url: "https://sample.com/mock",
|
|
filePath: 'test.png',
|
|
name: 'test',
|
|
success: (res) => {
|
|
expect(res.mock).toBe(true);
|
|
done();
|
|
},
|
|
};
|
|
uploadFile(mockRequest);
|
|
});
|
|
});
|
|
|
|
describe("uploadFile with promise way", () => {
|
|
test("send a http error uploadFile in promise way", async () => {
|
|
expect.assertions(1);
|
|
const httpErrorRequest = {
|
|
url: "https://sample.com/httpError",
|
|
catchError: true,
|
|
};
|
|
await uploadFile(httpErrorRequest).catch((error) => {
|
|
expect(error).toEqual(new Error("500"));
|
|
});
|
|
});
|
|
|
|
test("send a cgi error uploadFile in promise way", async () => {
|
|
expect.assertions(1);
|
|
const cgiErrorRequest = {
|
|
url: "https://sample.com/cgiError",
|
|
catchError: true,
|
|
};
|
|
await expect(uploadFile(cgiErrorRequest)).rejects.toThrow();
|
|
});
|
|
});
|