UNPKG

@hoangsonw/fast-fetch

Version:

A smarter fetch() wrapper with auto-retry, deduplication, and minimal boilerplate.

32 lines (24 loc) 941 B
import { fastFetch } from "../src/index.js"; describe("FastFetch Basic Tests", () => { const POKE_API = "https://pokeapi.co/api/v2/pokemon/ditto"; it("makes a basic fetch call successfully", async () => { const response = await fastFetch(POKE_API); expect(response.ok).toBe(true); const data = await response.json(); expect(data).toHaveProperty("name", "ditto"); }); it("deduplicates in-flight requests", async () => { const start = Date.now(); const [res1, res2] = await Promise.all([ fastFetch(POKE_API), fastFetch(POKE_API), ]); const time = Date.now() - start; // Should have same data expect((await res1.json()).name).toBe("ditto"); expect((await res2.clone().json()).name).toBe("ditto"); // We didn't do extra requests, so hopefully we didn't wait twice // Not a perfect check, but indicates we merged calls. expect(time).toBeLessThan(2000); }); });