Archived
68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
// import { describe, expect, it, vi, beforeEach, afterEach } from "bun:test";
|
|
// import { createRoot } from "solid-js";
|
|
// import { useSWR } from "../index";
|
|
|
|
// // Mock fetcher
|
|
// const fetcher = vi.fn((key: string) => Promise.resolve(`data-${key}`));
|
|
|
|
// describe("useSWR (Solid)", () => {
|
|
// beforeEach(() => {
|
|
// vi.useFakeTimers();
|
|
// fetcher.mockClear();
|
|
// });
|
|
|
|
// afterEach(() => {
|
|
// vi.useRealTimers();
|
|
// });
|
|
|
|
// it("fetches data on mount", async () => {
|
|
// createRoot((dispose) => {
|
|
// const result = useSWR(async () => "test-key", fetcher);
|
|
|
|
// // Initial state
|
|
// expect(result.isLoading).toBe(true);
|
|
|
|
// // Wait for fetch
|
|
// vi.runAllTimers();
|
|
|
|
// expect(result.data).toBe("data-test-key");
|
|
// expect(result.isLoading).toBe(false);
|
|
|
|
// dispose();
|
|
// });
|
|
// });
|
|
|
|
// it("deduplicates requests", async () => {
|
|
// createRoot((dispose) => {
|
|
// const r1 = useSWR(() => "dedupe-key", fetcher);
|
|
// const r2 = useSWR(() => "dedupe-key", fetcher);
|
|
|
|
// vi.runAllTimers();
|
|
|
|
// expect(fetcher).toHaveBeenCalledTimes(1);
|
|
// expect(r1.data).toBe("data-dedupe-key");
|
|
// expect(r2.data).toBe("data-dedupe-key");
|
|
|
|
// dispose();
|
|
// });
|
|
// });
|
|
|
|
// it("mutates data manually", async () => {
|
|
// await new Promise<void>((resolve) => {
|
|
// createRoot(async (dispose) => {
|
|
// const result = useSWR(() => "mutate-key", fetcher);
|
|
|
|
// vi.runAllTimers();
|
|
|
|
// expect(result.data).toBe("data-mutate-key");
|
|
|
|
// await result.mutate("new-data");
|
|
|
|
// expect(result.data).toBe("new-data");
|
|
|
|
// dispose();
|
|
// resolve();
|
|
// });
|
|
// });
|
|
// });
|
|
// });
|