Files
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

125 lines
3.5 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { MockManager } from './mock-manager';
test.describe('仪表盘', () => {
test.beforeEach(async ({ page }) => {
const mockManager = new MockManager({
enabled: true,
mode: 'full',
mockPaths: [],
delay: 0,
logCalls: true,
validateResponses: true,
dataSource: 'memory'
});
mockManager.presetTestData({
operationLogs: [
{
id: 1,
username: 'admin',
action: '登录',
content: '用户登录系统',
ip: '192.168.1.100',
status: 'success',
createTime: '2024-01-15 10:30:00'
},
{
id: 2,
username: 'admin',
action: '创建',
content: '创建用户 testuser',
ip: '192.168.1.100',
status: 'success',
createTime: '2024-01-15 10:25:00'
},
{
id: 3,
username: 'admin',
action: '更新',
content: '更新角色权限',
ip: '192.168.1.100',
status: 'success',
createTime: '2024-01-15 10:20:00'
},
{
id: 4,
username: 'testuser',
action: '登录',
content: '用户登录系统',
ip: '192.168.1.101',
status: 'success',
createTime: '2024-01-15 10:15:00'
},
{
id: 5,
username: 'admin',
action: '删除',
content: '删除菜单项',
ip: '192.168.1.100',
status: 'success',
createTime: '2024-01-15 10:10:00'
}
]
});
await mockManager.interceptAPIRequest(page);
await page.goto('/login');
await page.getByPlaceholder(/用户名/).fill('admin');
await page.getByPlaceholder(/密码/).fill('admin123');
await page.getByRole('button', { name: /登录/ }).click();
await page.waitForTimeout(3000);
});
test('应该显示仪表盘页面', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('应该显示统计卡片', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('应该显示用户增长趋势图表', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('应该显示系统访问统计图表', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('应该显示最近操作日志表格', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('统计数据应该正确显示', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('操作日志应该正确显示', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('操作日志应该显示正确的状态标签', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('操作日志应该显示正确的操作类型标签', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
test('统计卡片应该显示正确的图标', async ({ page }) => {
await page.waitForLoadState('networkidle');
await page.waitForTimeout(2000);
});
});