test-utils.tsx 838 B

12345678910111213141516171819202122232425262728293031
  1. import React from 'react';
  2. import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
  3. import { render, RenderOptions } from '@testing-library/react';
  4. // 创建测试用的QueryClient
  5. const createTestQueryClient = () => new QueryClient({
  6. defaultOptions: {
  7. queries: {
  8. retry: false,
  9. },
  10. },
  11. });
  12. // 自定义渲染函数,包含QueryClientProvider
  13. export const renderWithProviders = (
  14. ui: React.ReactElement,
  15. options?: Omit<RenderOptions, 'wrapper'>
  16. ) => {
  17. const testQueryClient = createTestQueryClient();
  18. const Wrapper = ({ children }: { children: React.ReactNode }) => (
  19. <QueryClientProvider client={testQueryClient}>
  20. {children}
  21. </QueryClientProvider>
  22. );
  23. return render(ui, { wrapper: Wrapper, ...options });
  24. };
  25. // 导出测试用的QueryClient
  26. export { createTestQueryClient };