2
0

settings.spec.ts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import { TIMEOUTS } from '../../utils/timeouts';
  2. import { test } from '../../utils/test-setup';
  3. import testUsers from '../../fixtures/test-users.json' with { type: 'json' };
  4. test.describe('系统设置管理', () => {
  5. test.beforeEach(async ({ adminLoginPage, page }) => {
  6. // 以管理员身份登录
  7. await adminLoginPage.goto();
  8. await adminLoginPage.login(testUsers.admin.username, testUsers.admin.password);
  9. // 导航到系统设置页面
  10. await page.goto('/admin/settings');
  11. await page.waitForLoadState('networkidle');
  12. });
  13. test('系统设置页面加载', async () => {
  14. // await expect(page.getByRole('heading', { name: /系统设置|设置/i })).toBeVisible();
  15. // await expect(page.getByText('基本设置')).toBeVisible();
  16. // await expect(page.getByText('安全设置')).toBeVisible();
  17. });
  18. // test('查看基本设置', async ({ page }) => {
  19. // // 切换到基本设置标签页
  20. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  21. // await basicSettingsTab.click();
  22. // // 验证基本设置表单元素
  23. // await expect(page.getByLabel('站点名称')).toBeVisible();
  24. // await expect(page.getByLabel('站点描述')).toBeVisible();
  25. // await expect(page.getByLabel('管理员邮箱')).toBeVisible();
  26. // });
  27. // test('更新基本设置', async ({ page }) => {
  28. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  29. // await basicSettingsTab.click();
  30. // // 更新站点名称
  31. // const siteNameInput = page.getByLabel('站点名称');
  32. // const newSiteName = `测试站点_${Date.now()}`;
  33. // await siteNameInput.fill(newSiteName);
  34. // // 保存设置
  35. // const saveButton = page.getByRole('button', { name: '保存设置' });
  36. // await saveButton.click();
  37. // // 验证保存成功
  38. // await expect(page.locator('text=设置保存成功')).toBeVisible();
  39. // // 验证设置已更新
  40. // await expect(siteNameInput).toHaveValue(newSiteName);
  41. // });
  42. // test('查看安全设置', async ({ page }) => {
  43. // // 切换到安全设置标签页
  44. // const securitySettingsTab = page.getByRole('tab', { name: '安全设置' });
  45. // await securitySettingsTab.click();
  46. // // 验证安全设置选项
  47. // await expect(page.getByLabel('启用双因素认证')).toBeVisible();
  48. // await expect(page.getByLabel('密码强度要求')).toBeVisible();
  49. // await expect(page.getByLabel('会话超时时间')).toBeVisible();
  50. // });
  51. // test('更新安全设置', async ({ page }) => {
  52. // const securitySettingsTab = page.getByRole('tab', { name: '安全设置' });
  53. // await securitySettingsTab.click();
  54. // // 启用双因素认证
  55. // const twoFactorToggle = page.getByLabel('启用双因素认证');
  56. // await twoFactorToggle.check();
  57. // // 设置密码强度
  58. // const passwordStrengthSelect = page.getByLabel('密码强度要求');
  59. // await passwordStrengthSelect.selectOption('high');
  60. // // 保存设置
  61. // const saveButton = page.getByRole('button', { name: '保存设置' });
  62. // await saveButton.click();
  63. // // 验证保存成功
  64. // await expect(page.locator('text=安全设置已更新')).toBeVisible();
  65. // });
  66. // test('设置验证 - 必填字段', async ({ page }) => {
  67. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  68. // await basicSettingsTab.click();
  69. // // 清空必填字段
  70. // const siteNameInput = page.getByLabel('站点名称');
  71. // await siteNameInput.fill('');
  72. // // 尝试保存
  73. // const saveButton = page.getByRole('button', { name: '保存设置' });
  74. // await saveButton.click();
  75. // // 验证错误提示
  76. // await expect(page.locator('text=站点名称不能为空')).toBeVisible();
  77. // });
  78. // test('设置回滚功能', async ({ page }) => {
  79. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  80. // await basicSettingsTab.click();
  81. // // 获取当前设置值
  82. // const siteNameInput = page.getByLabel('站点名称');
  83. // const originalValue = await siteNameInput.inputValue();
  84. // // 修改设置
  85. // await siteNameInput.fill('临时测试值');
  86. // // 点击重置按钮
  87. // const resetButton = page.getByRole('button', { name: '重置' });
  88. // await resetButton.click();
  89. // // 验证设置已恢复
  90. // await expect(siteNameInput).toHaveValue(originalValue);
  91. // });
  92. // test('设置导出功能', async ({ page }) => {
  93. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  94. // await basicSettingsTab.click();
  95. // // 点击导出按钮
  96. // const exportButton = page.getByRole('button', { name: '导出设置' });
  97. // // 监听下载事件
  98. // const downloadPromise = page.waitForEvent('download');
  99. // await exportButton.click();
  100. // const download = await downloadPromise;
  101. // // 验证下载文件
  102. // expect(download.suggestedFilename()).toMatch(/\.json$/);
  103. // });
  104. // test('设置导入功能', async ({ page }) => {
  105. // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' });
  106. // await basicSettingsTab.click();
  107. // // 点击导入按钮
  108. // const importButton = page.getByRole('button', { name: '导入设置' });
  109. // await importButton.click();
  110. // // 验证导入对话框
  111. // await expect(page.getByText('导入设置文件')).toBeVisible();
  112. // await expect(page.getByLabel('选择设置文件')).toBeVisible();
  113. // });
  114. // test('权限验证 - 非管理员访问', async ({ loginPage, page }) => {
  115. // // 先登出
  116. // await page.goto('/logout');
  117. // // 以普通用户身份登录
  118. // await loginPage.goto();
  119. // await loginPage.login(testUsers.regularUser.username, testUsers.regularUser.password);
  120. // // 尝试访问系统设置
  121. // await page.goto('/admin/settings');
  122. // // 验证权限不足错误
  123. // await expect(page.getByText(/权限不足|拒绝访问/i)).toBeVisible();
  124. // });
  125. });