| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { ReactNode } from 'react';
- import { BrowserRouter } from 'react-router-dom';
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
- import { ThemeProvider } from 'next-themes';
- /**
- * 创建测试用的QueryClient
- */
- export function createTestQueryClient() {
- return new QueryClient({
- defaultOptions: {
- queries: {
- retry: false,
- gcTime: 0,
- },
- mutations: {
- retry: false,
- },
- }
- });
- }
- /**
- * 测试渲染器的包装组件
- */
- export function TestWrapper({ children }: { children: ReactNode }) {
- const queryClient = createTestQueryClient();
- return (
- <QueryClientProvider client={queryClient}>
- <ThemeProvider attribute="class" defaultTheme="light">
- <BrowserRouter>
- {children}
- </BrowserRouter>
- </ThemeProvider>
- </QueryClientProvider>
- );
- }
- /**
- * 等待组件更新完成
- */
- export async function waitForUpdate(delay = 0) {
- await new Promise(resolve => setTimeout(resolve, delay));
- }
|