dashboard.spec.ts 3.0 KB

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