UNPKG

mux-fetch

Version:
183 lines (160 loc) 4.06 kB
import { fetchWebapi, setGlobalConfig, globalConfigMap } from "../src"; const url = `https://maimai.cn/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; describe("fetch", () => { it("base", done => { fetchWebapi(url, { method: "GET" }).then(res => { expect(res).toBeDefined(); done(); }); }); it("get request start time and end time", done => { fetchWebapi(url, { method: "GET" }).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("set global prefix", done => { const url = `/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; const prefix = `https://maimai.cn`; setGlobalConfig({ prefix }); fetchWebapi(url, { method: "GET" }).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("set global fetchOption", done => { globalConfigMap.clear(); const url = `/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; const prefix = `https://maimai.cn`; setGlobalConfig({ prefix, fetchOption: { method: "GET" } }); fetchWebapi(url).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("set global requestInterceptor", done => { globalConfigMap.clear(); const url = `/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; const prefix = `https://maimai.cn`; const fn = ({ api, options }) => { return { api: `${prefix}${api}`, options: { ...options, method: "GET" } }; }; setGlobalConfig({ interceptor: { requestInterceptor: [fn] } }); fetchWebapi(url).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("set global responseInterceptor", done => { globalConfigMap.clear(); const fn = res => { return { ...res, a: 1 }; }; setGlobalConfig({ interceptor: { responseInterceptor: [fn] } }); fetchWebapi(url, { method: "GET" }).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); expect(res.a).toBe(1); done(); }); }); it("set global mult responseInterceptors", done => { globalConfigMap.clear(); const fn = res => { return { ...res, a: 1 }; }; const fn1 = res => { return { ...res, b: 2 }; }; setGlobalConfig({ interceptor: { responseInterceptor: [fn, fn1] } }); fetchWebapi(url, { method: "GET" }).then(res => { expect(res.a).toBe(1); expect(res.b).toBe(2); expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("set global errorInterceptor", done => { const errUrl = "xxx"; const errMethod = "POST"; const fn = ({ error, options }) => { expect(options.url).toEqual(errUrl); expect(options.args.options.method).toEqual(errMethod); expect(error.toString()).toEqual( "Error: only absolute urls are supported" ); done(); }; setGlobalConfig({ interceptor: { errorInterceptor: [fn] } }); fetchWebapi(errUrl, { method: errMethod }); }); it("fast api get ", done => { fetchWebapi.get(url).then(res => { expect(res.result).toBeDefined(); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); });