diff --git a/frontend/react-shadcn/pc/tests/settings.test.ts b/frontend/react-shadcn/pc/tests/settings.test.ts new file mode 100644 index 0000000..22e681f --- /dev/null +++ b/frontend/react-shadcn/pc/tests/settings.test.ts @@ -0,0 +1,138 @@ +import { TEST_CONFIG, ROUTES, SELECTORS } from './config'; + +/** + * 测试场景: 设置页面功能 + */ + +export const settingsTests = { + name: '设置页面测试', + + // Test 1: 页面加载 + async testSettingsLoad() { + console.log('🧪 Test: 设置页面加载'); + + await mcp__plugin_playwright_playwright__browser_navigate({ + url: `${TEST_CONFIG.baseURL}${ROUTES.settings}` + }); + + await mcp__plugin_playwright_playwright__browser_wait_for({ time: 2 }); + + const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({}); + + // 验证设置分类 + console.assert( + snapshot.includes('个人设置'), + '个人设置卡片应该显示' + ); + console.assert( + snapshot.includes('通知设置'), + '通知设置卡片应该显示' + ); + console.assert( + snapshot.includes('安全设置'), + '安全设置卡片应该显示' + ); + console.assert( + snapshot.includes('外观设置'), + '外观设置卡片应该显示' + ); + + console.log('✅ 设置页面加载验证通过'); + }, + + // Test 2: 个人设置表单 + async testProfileSettings() { + console.log('🧪 Test: 个人设置表单'); + + const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({}); + + // 验证表单字段 + console.assert( + snapshot.includes('用户名'), + '用户名字段应该显示' + ); + console.assert( + snapshot.includes('邮箱'), + '邮箱字段应该显示' + ); + console.assert( + snapshot.includes('手机号'), + '手机号字段应该显示' + ); + console.assert( + snapshot.includes('保存设置'), + '保存设置按钮应该显示' + ); + + console.log('✅ 个人设置表单验证通过'); + }, + + // Test 3: 通知设置开关 + async testNotificationSettings() { + console.log('🧪 Test: 通知设置开关'); + + const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({}); + + // 验证通知选项 + console.assert( + snapshot.includes('邮件通知'), + '邮件通知选项应该显示' + ); + console.assert( + snapshot.includes('系统消息'), + '系统消息选项应该显示' + ); + console.assert( + snapshot.includes('接收重要操作邮件通知'), + '邮件通知描述应该显示' + ); + + console.log('✅ 通知设置开关验证通过'); + }, + + // Test 4: 安全设置 - 密码修改 + async testSecuritySettings() { + console.log('🧪 Test: 安全设置'); + + const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({}); + + // 验证密码修改字段 + console.assert( + snapshot.includes('当前密码'), + '当前密码字段应该显示' + ); + console.assert( + snapshot.includes('新密码'), + '新密码字段应该显示' + ); + console.assert( + snapshot.includes('确认密码'), + '确认密码字段应该显示' + ); + console.assert( + snapshot.includes('修改密码'), + '修改密码按钮应该显示' + ); + + console.log('✅ 安全设置验证通过'); + }, + + // Test 5: 外观设置 - 深色模式 + async testAppearanceSettings() { + console.log('🧪 Test: 外观设置'); + + const snapshot = await mcp__plugin_playwright_playwright__browser_snapshot({}); + + // 验证外观选项 + console.assert( + snapshot.includes('深色模式'), + '深色模式选项应该显示' + ); + console.assert( + snapshot.includes('使用深色主题'), + '深色主题描述应该显示' + ); + + console.log('✅ 外观设置验证通过'); + }, +};