// 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((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(); // }); // }); // }); // });