dashboard.spec.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 ({ loginPage, dashboardPage }) => {
  5. // 以管理员身份登录
  6. await loginPage.goto();
  7. await loginPage.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('导航到系统设置', async ({ dashboardPage, page }) => {
  28. await dashboardPage.navigateToSystemSettings();
  29. await expect(page).toHaveURL(/.*settings.*/);
  30. await expect(page.getByRole('heading', { name: /系统设置|设置/i })).toBeVisible();
  31. });
  32. test('仪表盘数据刷新', async ({ dashboardPage, page }) => {
  33. const initialActiveUsers = await dashboardPage.getActiveUsersCount();
  34. // 刷新页面
  35. await page.reload();
  36. await dashboardPage.expectToBeVisible();
  37. const refreshedActiveUsers = await dashboardPage.getActiveUsersCount();
  38. expect(refreshedActiveUsers).toBeTruthy();
  39. });
  40. test('响应式布局 - 桌面端', async ({ dashboardPage, page }) => {
  41. await page.setViewportSize({ width: 1200, height: 800 });
  42. await dashboardPage.expectToBeVisible();
  43. // 验证桌面端布局元素
  44. await expect(dashboardPage.activeUsersCard).toBeVisible();
  45. await expect(dashboardPage.systemMessagesCard).toBeVisible();
  46. await expect(dashboardPage.onlineUsersCard).toBeVisible();
  47. });
  48. test('响应式布局 - 平板端', async ({ dashboardPage, page }) => {
  49. await page.setViewportSize({ width: 768, height: 1024 });
  50. await dashboardPage.expectToBeVisible();
  51. // 验证平板端布局
  52. await expect(dashboardPage.activeUsersCard).toBeVisible();
  53. await expect(dashboardPage.systemMessagesCard).toBeVisible();
  54. });
  55. test('响应式布局 - 移动端', async ({ dashboardPage, page }) => {
  56. await page.setViewportSize({ width: 375, height: 667 });
  57. await dashboardPage.expectToBeVisible();
  58. // 验证移动端布局
  59. await expect(dashboardPage.pageTitle).toBeVisible();
  60. });
  61. });