181 lines
4.6 KiB
TypeScript
181 lines
4.6 KiB
TypeScript
|
|
import request from "../../src/api/request";
|
||
|
|
import config from "../../src/store/config";
|
||
|
|
import { initail } from "./init";
|
||
|
|
|
||
|
|
beforeAll(() => {
|
||
|
|
// 以下所有测试用例执行前,需提前执行初始化
|
||
|
|
initail();
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("normal request", () => {
|
||
|
|
test("send a success request in callback way with duration report", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const normalRequest = {
|
||
|
|
url: "https://sample.com/success",
|
||
|
|
showLoading: true,
|
||
|
|
report: "reportkey",
|
||
|
|
success: (res) => {
|
||
|
|
expect(res.isSuccess).toBe(true);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(normalRequest);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a cgi error request in callback way", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const cgiErrorRequest = {
|
||
|
|
url: "https://sample.com/cgiError",
|
||
|
|
fail: (res) => {
|
||
|
|
expect(res.data.errcode).toBe(-100);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(cgiErrorRequest);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a http error request in callback way", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const httpErrorRequest = {
|
||
|
|
url: "https://sample.com/httpError",
|
||
|
|
fail: (res) => {
|
||
|
|
expect(res.statusCode).toBe(500);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(httpErrorRequest);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a success request and response is not json", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const notJsonRequest = {
|
||
|
|
url: "https://sample.com/successButNotJson",
|
||
|
|
success: (res) => {
|
||
|
|
expect(res.isSuccess).toBe(true);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(notJsonRequest);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a success request with checkSession", (done) => {
|
||
|
|
config.doNotCheckSession = false;
|
||
|
|
expect.assertions(1);
|
||
|
|
const normalRequest = {
|
||
|
|
url: "https://sample.com/success",
|
||
|
|
success: (res) => {
|
||
|
|
expect(res.isSuccess).toBe(true);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(normalRequest);
|
||
|
|
})
|
||
|
|
|
||
|
|
// test("send a request when session is expired", (done) => {
|
||
|
|
// expect.assertions(1);
|
||
|
|
// const expiredRequest = {
|
||
|
|
// url: "https://sample.com/sessionExpired",
|
||
|
|
// success: (res) => {
|
||
|
|
// expect(res.isSuccess).toBe(true);
|
||
|
|
// done();
|
||
|
|
// },
|
||
|
|
// };
|
||
|
|
// request(expiredRequest);
|
||
|
|
// })
|
||
|
|
|
||
|
|
// test("send a network error request in callback way without fail definition", async () => {
|
||
|
|
// expect.assertions(1);
|
||
|
|
// wx.__mock__.modalIsShow = false;
|
||
|
|
// const cgiErrorRequest = {
|
||
|
|
// url: "https://sample.com/cgiError",
|
||
|
|
// success(){}
|
||
|
|
// };
|
||
|
|
// await request(cgiErrorRequest);
|
||
|
|
// expect(wx.__mock__.modalIsShow).toBe(true);
|
||
|
|
// done();
|
||
|
|
// });
|
||
|
|
|
||
|
|
test("send a network error request in callback way", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const networkErrorRequest = {
|
||
|
|
url: "https://sample.com/networkError",
|
||
|
|
fail: (res) => {
|
||
|
|
expect(res.errMsg).toContain("request:fail");
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(networkErrorRequest)
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("mock request", () => {
|
||
|
|
test("try to get mock data", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const mockRequest = {
|
||
|
|
url: "https://sample.com/mock",
|
||
|
|
success: (res) => {
|
||
|
|
expect(res.mock).toBe(true);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(mockRequest);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("cache request", () => {
|
||
|
|
test("send a success request in cache way", (done) => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const mockRequest = {
|
||
|
|
url: "https://sample.com/success",
|
||
|
|
cache: true,
|
||
|
|
success: (res) => {
|
||
|
|
expect(res.isSuccess).toBe(true);
|
||
|
|
done();
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(mockRequest);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("check response set in storage successfully", () => {
|
||
|
|
expect(wx.__mock__.storage["https://sample.com/success"]).not.toBeFalsy();
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a success request while already has cached", async (done) => {
|
||
|
|
expect.assertions(2);
|
||
|
|
const mockRequest = {
|
||
|
|
url: "https://sample.com/success",
|
||
|
|
cache: true,
|
||
|
|
success: (res, cache) => {
|
||
|
|
if (cache) {
|
||
|
|
expect(res.isSuccess).toBe(true);
|
||
|
|
expect(cache.isCache).toBe(true);
|
||
|
|
done();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
};
|
||
|
|
request(mockRequest);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("request with promise way", () => {
|
||
|
|
test("send a http error request in promise way", async () => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const httpErrorRequest = {
|
||
|
|
url: "https://sample.com/httpError",
|
||
|
|
catchError: true,
|
||
|
|
};
|
||
|
|
await request(httpErrorRequest).catch((error) => {
|
||
|
|
expect(error).toEqual(new Error("500"));
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
test("send a cgi error request in promise way", async () => {
|
||
|
|
expect.assertions(1);
|
||
|
|
const cgiErrorRequest = {
|
||
|
|
url: "https://sample.com/cgiError",
|
||
|
|
catchError: true,
|
||
|
|
};
|
||
|
|
await expect(request(cgiErrorRequest)).rejects.toThrow();
|
||
|
|
});
|
||
|
|
});
|