import { render } from '@testing-library/react';
import { http } from 'msw';
import * as React from 'react';
import { QueryClient, QueryClientProvider } from 'react-query';
export const handlers = [
http.get(
'*/react-query',
({ request, params }) => {
return new Response(
JSON.stringify({
name: 'mocked-react-query',
}),
{
status: 200,
headers: {
'Content-Type': 'application/json',
},
},
);
},
),
];
const createTestQueryClient = () => new QueryClient({
defaultOptions: {
queries: {
retry: false,
},
},
});
export function renderWithClient(ui: React.ReactElement) {
const testQueryClient = createTestQueryClient();
const { rerender, ...result } = render(
{ui},
);
return {
...result,
rerender: (rerenderUi: React.ReactElement) => rerender(
{rerenderUi},
),
};
}
export function createWrapper() {
const testQueryClient = createTestQueryClient();
// eslint-disable-next-line react/display-name
return ({ children }: {children: React.ReactNode}) => (
{children}
);
}