|
|
@@ -58,18 +58,7 @@ vi.mock('sonner', () => ({
|
|
|
}
|
|
|
}));
|
|
|
|
|
|
-vi.mock('react-hook-form', async () => {
|
|
|
- const actual = await vi.importActual('react-hook-form');
|
|
|
- return {
|
|
|
- ...actual,
|
|
|
- useForm: vi.fn().mockReturnValue({
|
|
|
- control: {},
|
|
|
- handleSubmit: vi.fn((fn) => fn),
|
|
|
- reset: vi.fn(),
|
|
|
- formState: { errors: {} }
|
|
|
- })
|
|
|
- };
|
|
|
-});
|
|
|
+// 移除 react-hook-form mock,使用真实实现
|
|
|
|
|
|
describe('UsersPage 集成测试', () => {
|
|
|
const user = userEvent.setup();
|
|
|
@@ -106,7 +95,11 @@ describe('UsersPage 集成测试', () => {
|
|
|
});
|
|
|
|
|
|
it('应该处理搜索功能', async () => {
|
|
|
- render(<UsersPage />);
|
|
|
+ render(
|
|
|
+ <TestWrapper>
|
|
|
+ <UsersPage />
|
|
|
+ </TestWrapper>
|
|
|
+ );
|
|
|
|
|
|
const searchInput = screen.getByPlaceholderText('搜索用户名、昵称或邮箱...');
|
|
|
const searchButton = screen.getByText('搜索');
|
|
|
@@ -120,7 +113,11 @@ describe('UsersPage 集成测试', () => {
|
|
|
});
|
|
|
|
|
|
it('应该显示高级筛选功能', async () => {
|
|
|
- render(<UsersPage />);
|
|
|
+ render(
|
|
|
+ <TestWrapper>
|
|
|
+ <UsersPage />
|
|
|
+ </TestWrapper>
|
|
|
+ );
|
|
|
|
|
|
const filterButton = screen.getByText('高级筛选');
|
|
|
await user.click(filterButton);
|
|
|
@@ -132,7 +129,11 @@ describe('UsersPage 集成测试', () => {
|
|
|
});
|
|
|
|
|
|
it('应该处理用户状态筛选', async () => {
|
|
|
- render(<UsersPage />);
|
|
|
+ render(
|
|
|
+ <TestWrapper>
|
|
|
+ <UsersPage />
|
|
|
+ </TestWrapper>
|
|
|
+ );
|
|
|
|
|
|
const filterButton = screen.getByText('高级筛选');
|
|
|
await user.click(filterButton);
|
|
|
@@ -147,13 +148,18 @@ describe('UsersPage 集成测试', () => {
|
|
|
});
|
|
|
|
|
|
it('应该显示创建用户按钮并打开模态框', async () => {
|
|
|
- render(<UsersPage />);
|
|
|
+ render(
|
|
|
+ <TestWrapper>
|
|
|
+ <UsersPage />
|
|
|
+ </TestWrapper>
|
|
|
+ );
|
|
|
|
|
|
- const createButton = screen.getByText('创建用户');
|
|
|
+ // 使用更具体的查询找到主创建按钮
|
|
|
+ const createButton = screen.getByRole('button', { name: /创建用户/i });
|
|
|
await user.click(createButton);
|
|
|
|
|
|
// 验证模态框标题
|
|
|
- expect(screen.getByText('创建用户')).toBeInTheDocument();
|
|
|
+ expect(screen.getByRole('heading', { name: '创建用户' })).toBeInTheDocument();
|
|
|
});
|
|
|
|
|
|
it('应该显示分页组件', async () => {
|