import { createElement, type ReactElement, type ReactNode } from "react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { render, type RenderOptions } from "@testing-library/react"; export const createTestQueryClient = () => new QueryClient({ defaultOptions: { queries: { retry: false, }, }, }); /** `render`,外面包一层 QueryClientProvider(`rerender` 也保留)。 */ export const renderWithQueryClient = ( ui: ReactElement, options?: Omit, ) => { const client = createTestQueryClient(); return render(ui, { ...options, wrapper: ({ children }: { children: ReactNode }) => createElement(QueryClientProvider, { client }, children), }); };