UNPKG

mux-fetch

Version:
110 lines (102 loc) 2.6 kB
import { fetch, setGlobalConfig, setBlockConfig } from "../src"; const url = `https://maimai.cn/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; describe("fetch", () => { it("base", done => { fetch(url, { method: "GET" }).then(res => { expect(res.result).toEqual("ok"); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); it("fast api get ", done => { fetch.get(url).then(res => { expect(res.result).toEqual("ok"); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); done(); }); }); /*** * 区块的配置会和全局的配置合并 * 基础类型 为 区块 覆盖 全局 * 复杂类型 为 区块 合并 全局,且全局先执行 */ it("combine config", done => { const url = `/web/pingback?type=pc&device_id=0bb8c8ab5b2d45996d1a9ab0e35da215`; const prefix = `https://maimai.cn`; setGlobalConfig({ prefix: "xxxxxx", responseHandle: async res => { const data = await res.response.clone().json(); return { ...data, ...res.options }; }, fetchOption: { a: 1 }, interceptor: { requestInterceptor: [ res => { expect(res.api).toEqual(`${prefix}${url}`); expect(res.options).toEqual({ method: "GET", a: 1, b: 1 }); return { ...res, request1: 1 }; } ], responseInterceptor: [ res => ({ ...res, response1: 1 }) ] } }); setBlockConfig("app", { prefix, fetchOption: { b: 1 }, responseHandle: async res => { const data = await res.response.clone().json(); return { ...data, ...res.options, test: 1 }; }, interceptor: { requestInterceptor: [ (res: any) => { expect(res.request1).toEqual(1); return res; } ], responseInterceptor: [ res => ({ ...res, response2: 2 }) ] } }); fetch("app", url, { method: "GET" }).then(res => { expect(res.result).toEqual("ok"); expect(res.startTime).toBeDefined(); expect(res.endTime).toBeDefined(); expect(res.test).toEqual(1); expect(res.response1).toEqual(1); expect(res.response2).toEqual(2); done(); }); }); });