dashboard.spec.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { TIMEOUTS } from '../../utils/timeouts';
  2. import { test, expect } from '../../utils/test-setup';
  3. import testUsers from '../../fixtures/test-users.json' with { type: 'json' };
  4. test.describe('管理后台仪表盘', () => {
  5. test.beforeEach(async ({ adminLoginPage, dashboardPage }) => {
  6. // 以管理员身份登录
  7. await adminLoginPage.goto();
  8. await adminLoginPage.login(testUsers.admin.username, testUsers.admin.password);
  9. await dashboardPage.expectToBeVisible();
  10. });
  11. test('仪表盘页面加载', async ({ dashboardPage }) => {
  12. await dashboardPage.expectToBeVisible();
  13. });
  14. test('查看活跃用户统计', async ({ dashboardPage }) => {
  15. const activeUsersCount = await dashboardPage.getActiveUsersCount();
  16. expect(activeUsersCount).toBeTruthy();
  17. expect(parseInt(activeUsersCount) >= 0).toBeTruthy();
  18. });
  19. test('查看系统消息统计', async ({ dashboardPage }) => {
  20. const systemMessagesCount = await dashboardPage.getSystemMessagesCount();
  21. expect(systemMessagesCount).toBeTruthy();
  22. expect(parseInt(systemMessagesCount) >= 0).toBeTruthy();
  23. });
  24. test('导航到用户管理', async ({ dashboardPage, userManagementPage }) => {
  25. await dashboardPage.navigateToUserManagement();
  26. await userManagementPage.expectToBeVisible();
  27. });
  28. test.skip('导航到系统设置 - 功能暂未实现', async ({ dashboardPage, page }) => {
  29. // 系统设置功能暂未实现,跳过此测试
  30. await dashboardPage.navigateToSystemSettings();
  31. await expect(page).toHaveURL(/.*settings.*/);
  32. await expect(page.getByRole('heading', { name: /系统设置|设置/i })).toBeVisible();
  33. });
  34. test('仪表盘数据刷新', async ({ dashboardPage, page }) => {
  35. // 获取初始数据
  36. await dashboardPage.expectToBeVisible();
  37. // 刷新页面
  38. await page.reload();
  39. await dashboardPage.expectToBeVisible();
  40. // 验证刷新后数据仍然存在
  41. const refreshedActiveUsers = await dashboardPage.getActiveUsersCount();
  42. expect(refreshedActiveUsers).toBeTruthy();
  43. });
  44. test('响应式布局 - 桌面端', async ({ dashboardPage, page }) => {
  45. await page.setViewportSize({ width: 1200, height: 800 });
  46. await dashboardPage.expectToBeVisible();
  47. // 验证桌面端布局元素
  48. await expect(dashboardPage.activeUsersCard).toBeVisible();
  49. await expect(dashboardPage.systemMessagesCard).toBeVisible();
  50. await expect(dashboardPage.onlineUsersCard).toBeVisible();
  51. });
  52. test('响应式布局 - 平板端', async ({ dashboardPage, page }) => {
  53. await page.setViewportSize({ width: 768, height: 1024 });
  54. await dashboardPage.expectToBeVisible();
  55. // 验证平板端布局
  56. await expect(dashboardPage.activeUsersCard).toBeVisible();
  57. await expect(dashboardPage.systemMessagesCard).toBeVisible();
  58. });
  59. test('响应式布局 - 移动端', async ({ dashboardPage, page }) => {
  60. await page.setViewportSize({ width: 375, height: 667 });
  61. await dashboardPage.expectToBeVisible();
  62. // 验证移动端布局
  63. await expect(dashboardPage.pageTitle).toBeVisible();
  64. });
  65. });