Files
weRequest/test/api/uploadFile.test.ts

89 lines
2.2 KiB
TypeScript
Raw Permalink Normal View History

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();
});
});