mirror of
https://github.com/MeshCore-Beacon/beacon-web.git
synced 2026-09-05 05:03:45 +00:00
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
import { renderHook, waitFor } from "@testing-library/react";
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import { usePacketDetail } from "../../../src/features/packets/usePacketDetail";
|
|
|
|
const getPacketDetail = vi.fn();
|
|
vi.mock("../../../src/api/client", () => ({
|
|
getPacketDetail: (hash: string) => getPacketDetail(hash),
|
|
}));
|
|
|
|
const wrapper = ({ children }: { children: React.ReactNode }) => (
|
|
<QueryClientProvider client={new QueryClient({ defaultOptions: { queries: { retry: false } } })}>
|
|
{children}
|
|
</QueryClientProvider>
|
|
);
|
|
|
|
beforeEach(() => getPacketDetail.mockReset());
|
|
|
|
describe("usePacketDetail", () => {
|
|
it("does not fetch when hash is null", () => {
|
|
renderHook(() => usePacketDetail(null), { wrapper });
|
|
expect(getPacketDetail).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("fetches the detail for a hash", async () => {
|
|
getPacketDetail.mockResolvedValue({ packetHash: "AA11", observations: [] });
|
|
const { result } = renderHook(() => usePacketDetail("AA11"), { wrapper });
|
|
await waitFor(() => expect(result.current.data?.packetHash).toBe("AA11"));
|
|
expect(getPacketDetail).toHaveBeenCalledWith("AA11");
|
|
});
|
|
});
|