|
|
@@ -1,3 +1,4 @@
|
|
|
+import React from 'react';
|
|
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
|
import { render, screen, waitFor } from '@testing-library/react';
|
|
|
import userEvent from '@testing-library/user-event';
|
|
|
@@ -23,23 +24,27 @@ vi.mock('@d8d/shared-ui-components/components/admin/DataTablePagination', () =>
|
|
|
)
|
|
|
}));
|
|
|
|
|
|
-const createTestQueryClient = () => new QueryClient({
|
|
|
- defaultOptions: {
|
|
|
- queries: {
|
|
|
- retry: false,
|
|
|
- gcTime: 0
|
|
|
- },
|
|
|
- mutations: {
|
|
|
- retry: false
|
|
|
+const createTestQueryClient = () =>
|
|
|
+ new QueryClient({
|
|
|
+ defaultOptions: {
|
|
|
+ queries: {
|
|
|
+ retry: false,
|
|
|
+ gcTime: 0
|
|
|
+ },
|
|
|
+ mutations: {
|
|
|
+ retry: false
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-});
|
|
|
+ });
|
|
|
|
|
|
-const wrapper = ({ children }: { children: React.ReactNode }) => (
|
|
|
- <QueryClientProvider client={createTestQueryClient()}>
|
|
|
- {children}
|
|
|
- </QueryClientProvider>
|
|
|
-});
|
|
|
+const renderWithProviders = (component: React.ReactElement) => {
|
|
|
+ const queryClient = createTestQueryClient();
|
|
|
+ return render(
|
|
|
+ <QueryClientProvider client={queryClient}>
|
|
|
+ {component as any}
|
|
|
+ </QueryClientProvider>
|
|
|
+ );
|
|
|
+};
|
|
|
|
|
|
describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
const mockGetClient = vi.mocked(unifiedAdvertisementTypeClientManager.get);
|
|
|
@@ -85,7 +90,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
await waitFor(() => {
|
|
|
expect(screen.getByText('统一广告类型管理')).toBeInTheDocument();
|
|
|
@@ -118,7 +123,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
await waitFor(() => {
|
|
|
expect(screen.getByText('暂无广告类型数据')).toBeInTheDocument();
|
|
|
@@ -154,7 +159,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
// 点击创建按钮
|
|
|
await user.click(screen.getByTestId('create-unified-advertisement-type-button'));
|
|
|
@@ -225,7 +230,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
// 等待列表加载
|
|
|
await waitFor(() => {
|
|
|
@@ -304,7 +309,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
// 等待列表加载
|
|
|
await waitFor(() => {
|
|
|
@@ -368,7 +373,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
// 输入搜索关键词
|
|
|
const searchInput = screen.getByTestId('search-input');
|
|
|
@@ -416,7 +421,7 @@ describe('UnifiedAdvertisementTypeManagement - 集成测试', () => {
|
|
|
}
|
|
|
} as any);
|
|
|
|
|
|
- render(<UnifiedAdvertisementTypeManagement />, { wrapper });
|
|
|
+ renderWithProviders(<UnifiedAdvertisementTypeManagement />);
|
|
|
|
|
|
// 点击创建按钮
|
|
|
await user.click(screen.getByTestId('create-unified-advertisement-type-button'));
|