import { test, expect } from './test-fixtures'; test.describe('角色管理 - 完全Mock模式', () => { test.beforeEach(async ({ page, mockManager }) => { mockManager.enableMock(); mockManager.configureMock({ mode: 'full', delay: 100 }); mockManager.presetTestData({ roles: [ { id: 1, name: '超级管理员', roleKey: 'super_admin', description: '拥有所有权限', status: 'ENABLED', sortOrder: 1, remark: '系统默认角色', menuIds: [1, 2, 3], createdAt: '2024-01-01T10:00:00.000Z', updatedAt: '2024-01-01T10:00:00.000Z' }, { id: 2, name: '管理员', roleKey: 'admin', description: '拥有大部分权限', status: 'ENABLED', sortOrder: 2, remark: '系统管理员', menuIds: [1, 2], createdAt: '2024-01-02T10:00:00.000Z', updatedAt: '2024-01-02T10:00:00.000Z' }, { id: 3, name: '普通用户', roleKey: 'user', description: '拥有基本权限', status: 'ENABLED', sortOrder: 3, remark: '普通用户角色', menuIds: [1], createdAt: '2024-01-03T10:00:00.000Z', updatedAt: '2024-01-03T10:00:00.000Z' } ] }); await page.goto('/'); await page.fill('input[placeholder="请输入用户名"]', 'admin'); await page.fill('input[placeholder="请输入密码"]', 'admin123'); await page.click('button[type="submit"]'); await page.waitForURL(/.*dashboard/, { timeout: 10000 }); }); test.afterEach(async ({ mockManager }) => { mockManager.clearPresets(); mockManager.disableMock(); }); test('应该显示角色列表', async ({ page }) => { await page.goto('/roles'); await page.waitForLoadState('networkidle'); await expect(page.locator('.ant-table')).toBeVisible(); await expect(page.locator('text=超级管理员')).toBeVisible(); await expect(page.locator('text=管理员')).toBeVisible(); await expect(page.locator('text=普通用户')).toBeVisible(); }); test('应该能够创建新角色', async ({ page }) => { await page.goto('/roles'); await page.waitForLoadState('networkidle'); await page.click('button:has-text("新增角色")'); await page.fill('input[placeholder="请输入角色名称"]', '测试角色'); await page.fill('input[placeholder="请输入角色标识"]', 'test_role'); await page.fill('textarea[placeholder="请输入角色描述"]', '这是一个测试角色'); await page.click('button:has-text("确定")'); await expect(page.locator('text=创建成功')).toBeVisible(); }); test('应该能够编辑角色', async ({ page }) => { await page.goto('/roles'); await page.waitForLoadState('networkidle'); await page.click('button:has-text("编辑"):first'); await page.fill('input[placeholder="请输入角色名称"]', '更新后的角色名称'); await page.click('button:has-text("确定")'); await expect(page.locator('text=更新成功')).toBeVisible(); }); test('应该能够删除角色', async ({ page }) => { await page.goto('/roles'); await page.waitForLoadState('networkidle'); page.on('dialog', dialog => dialog.accept()); await page.click('button:has-text("删除"):first'); await expect(page.locator('text=删除成功')).toBeVisible(); }); });