import { test } from '../../utils/test-setup'; import testUsers from '../../fixtures/test-users.json' with { type: 'json' }; test.describe('系统设置管理', () => { test.beforeEach(async ({ adminLoginPage, page }) => { // 以管理员身份登录 await adminLoginPage.goto(); await adminLoginPage.login(testUsers.admin.username, testUsers.admin.password); // 导航到系统设置页面 await page.goto('/admin/settings'); await page.waitForLoadState('networkidle'); }); test('系统设置页面加载', async () => { // await expect(page.getByRole('heading', { name: /系统设置|设置/i })).toBeVisible(); // await expect(page.getByText('基本设置')).toBeVisible(); // await expect(page.getByText('安全设置')).toBeVisible(); }); // test('查看基本设置', async ({ page }) => { // // 切换到基本设置标签页 // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 验证基本设置表单元素 // await expect(page.getByLabel('站点名称')).toBeVisible(); // await expect(page.getByLabel('站点描述')).toBeVisible(); // await expect(page.getByLabel('管理员邮箱')).toBeVisible(); // }); // test('更新基本设置', async ({ page }) => { // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 更新站点名称 // const siteNameInput = page.getByLabel('站点名称'); // const newSiteName = `测试站点_${Date.now()}`; // await siteNameInput.fill(newSiteName); // // 保存设置 // const saveButton = page.getByRole('button', { name: '保存设置' }); // await saveButton.click(); // // 验证保存成功 // await expect(page.locator('text=设置保存成功')).toBeVisible(); // // 验证设置已更新 // await expect(siteNameInput).toHaveValue(newSiteName); // }); // test('查看安全设置', async ({ page }) => { // // 切换到安全设置标签页 // const securitySettingsTab = page.getByRole('tab', { name: '安全设置' }); // await securitySettingsTab.click(); // // 验证安全设置选项 // await expect(page.getByLabel('启用双因素认证')).toBeVisible(); // await expect(page.getByLabel('密码强度要求')).toBeVisible(); // await expect(page.getByLabel('会话超时时间')).toBeVisible(); // }); // test('更新安全设置', async ({ page }) => { // const securitySettingsTab = page.getByRole('tab', { name: '安全设置' }); // await securitySettingsTab.click(); // // 启用双因素认证 // const twoFactorToggle = page.getByLabel('启用双因素认证'); // await twoFactorToggle.check(); // // 设置密码强度 // const passwordStrengthSelect = page.getByLabel('密码强度要求'); // await passwordStrengthSelect.selectOption('high'); // // 保存设置 // const saveButton = page.getByRole('button', { name: '保存设置' }); // await saveButton.click(); // // 验证保存成功 // await expect(page.locator('text=安全设置已更新')).toBeVisible(); // }); // test('设置验证 - 必填字段', async ({ page }) => { // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 清空必填字段 // const siteNameInput = page.getByLabel('站点名称'); // await siteNameInput.fill(''); // // 尝试保存 // const saveButton = page.getByRole('button', { name: '保存设置' }); // await saveButton.click(); // // 验证错误提示 // await expect(page.locator('text=站点名称不能为空')).toBeVisible(); // }); // test('设置回滚功能', async ({ page }) => { // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 获取当前设置值 // const siteNameInput = page.getByLabel('站点名称'); // const originalValue = await siteNameInput.inputValue(); // // 修改设置 // await siteNameInput.fill('临时测试值'); // // 点击重置按钮 // const resetButton = page.getByRole('button', { name: '重置' }); // await resetButton.click(); // // 验证设置已恢复 // await expect(siteNameInput).toHaveValue(originalValue); // }); // test('设置导出功能', async ({ page }) => { // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 点击导出按钮 // const exportButton = page.getByRole('button', { name: '导出设置' }); // // 监听下载事件 // const downloadPromise = page.waitForEvent('download'); // await exportButton.click(); // const download = await downloadPromise; // // 验证下载文件 // expect(download.suggestedFilename()).toMatch(/\.json$/); // }); // test('设置导入功能', async ({ page }) => { // const basicSettingsTab = page.getByRole('tab', { name: '基本设置' }); // await basicSettingsTab.click(); // // 点击导入按钮 // const importButton = page.getByRole('button', { name: '导入设置' }); // await importButton.click(); // // 验证导入对话框 // await expect(page.getByText('导入设置文件')).toBeVisible(); // await expect(page.getByLabel('选择设置文件')).toBeVisible(); // }); // test('权限验证 - 非管理员访问', async ({ loginPage, page }) => { // // 先登出 // await page.goto('/logout'); // // 以普通用户身份登录 // await loginPage.goto(); // await loginPage.login(testUsers.regularUser.username, testUsers.regularUser.password); // // 尝试访问系统设置 // await page.goto('/admin/settings'); // // 验证权限不足错误 // await expect(page.getByText(/权限不足|拒绝访问/i)).toBeVisible(); // }); });