ソースを参照

✅ test(admin): 优化用户管理页面集成测试定位方式

- 将通过文本定位按钮改为通过角色定位,提高测试稳定性
- 调整"创建时间"元素定位方式,使用getAllByText并检查第一个元素以避免重复文本匹配问题
yourname 2 ヶ月 前
コミット
0570e05668
1 ファイル変更4 行追加3 行削除
  1. 4 3
      src/client/__integration_tests__/admin/users.test.tsx

+ 4 - 3
src/client/__integration_tests__/admin/users.test.tsx

@@ -119,13 +119,14 @@ describe('UsersPage 集成测试', () => {
       </TestWrapper>
     );
 
-    const filterButton = screen.getByText('高级筛选');
+    const filterButton = screen.getByRole('button', { name: '高级筛选' });
     await user.click(filterButton);
 
     // 验证筛选表单显示
     expect(screen.getByText('用户状态')).toBeInTheDocument();
     expect(screen.getByText('用户角色')).toBeInTheDocument();
-    expect(screen.getByText('创建时间')).toBeInTheDocument();
+    // 使用 getAllByText 并检查第一个元素
+    expect(screen.getAllByText('创建时间')[0]).toBeInTheDocument();
   });
 
   it('应该处理用户状态筛选', async () => {
@@ -135,7 +136,7 @@ describe('UsersPage 集成测试', () => {
       </TestWrapper>
     );
 
-    const filterButton = screen.getByText('高级筛选');
+    const filterButton = screen.getByRole('button', { name: '高级筛选' });
     await user.click(filterButton);
 
     const statusSelect = screen.getByText('选择状态');