|
|
@@ -1,80 +0,0 @@
|
|
|
-import { ReactNode } from 'react';
|
|
|
-import { BrowserRouter } from 'react-router-dom';
|
|
|
-import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
|
-import { ThemeProvider } from 'next-themes';
|
|
|
-import { AuthProvider } from '../../../src/client/admin/hooks/AuthProvider';
|
|
|
-import { vi } from 'vitest';
|
|
|
-
|
|
|
-/**
|
|
|
- * 创建测试用的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>
|
|
|
- );
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 专门用于admin页面的测试包装器,包含AuthProvider
|
|
|
- */
|
|
|
-export function AdminTestWrapper({ children }: { children: ReactNode }) {
|
|
|
- const queryClient = createTestQueryClient();
|
|
|
-
|
|
|
- // Mock localStorage for tests
|
|
|
- const localStorageMock = {
|
|
|
- getItem: vi.fn(() => null),
|
|
|
- setItem: vi.fn(),
|
|
|
- removeItem: vi.fn(),
|
|
|
- clear: vi.fn(),
|
|
|
- };
|
|
|
-
|
|
|
- // Set up localStorage mock
|
|
|
- Object.defineProperty(window, 'localStorage', {
|
|
|
- value: localStorageMock,
|
|
|
- writable: true,
|
|
|
- });
|
|
|
-
|
|
|
- return (
|
|
|
- <QueryClientProvider client={queryClient}>
|
|
|
- <ThemeProvider attribute="class" defaultTheme="light">
|
|
|
- <BrowserRouter>
|
|
|
- <AuthProvider>
|
|
|
- {children}
|
|
|
- </AuthProvider>
|
|
|
- </BrowserRouter>
|
|
|
- </ThemeProvider>
|
|
|
- </QueryClientProvider>
|
|
|
- );
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 等待组件更新完成
|
|
|
- */
|
|
|
-export async function waitForUpdate(delay = 0) {
|
|
|
- await new Promise(resolve => setTimeout(resolve, delay));
|
|
|
-}
|