Files
novalon-manage-system/novalon-manage-web/e2e/uat-permission-workflow.spec.ts
T
张翔 af44c23f21 refactor(security): 重构安全配置并优化测试环境
- 移除旧的测试套件和UAT测试文件
- 更新密码编码器配置使用BCrypt strength=12
- 添加用户角色关联表和相关服务
- 优化前端日期显示格式
- 清理无用资源和配置文件
- 增强测试数据管理和清理功能
2026-03-27 13:00:22 +08:00

103 lines
3.9 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { LoginPage } from './pages/LoginPage';
import { DashboardPage } from './pages/DashboardPage';
import { RoleManagementPage } from './pages/RoleManagementPage';
import { UserManagementPage } from './pages/UserManagementPage';
test.describe('UAT权限分配流程测试', () => {
test('UAT-PERM-001: 权限分配完整流程', async ({ page }) => {
const loginPage = new LoginPage(page);
const dashboardPage = new DashboardPage(page);
const roleManagementPage = new RoleManagementPage(page);
const userManagementPage = new UserManagementPage(page);
await test.step('1. 管理员登录', async () => {
await loginPage.goto();
await loginPage.login('admin', 'admin123');
await page.waitForURL(/.*dashboard/);
});
await test.step('2. 创建新角色', async () => {
await dashboardPage.navigateToRoleManagement();
await roleManagementPage.clickCreateRole();
const timestamp = Date.now();
const roleData = {
roleName: `UAT角色_${timestamp}`,
roleKey: `uat_role_${timestamp}`,
roleSort: '1',
status: '1',
remark: 'UAT测试角色'
};
await roleManagementPage.fillRoleForm(roleData);
await roleManagementPage.submitForm();
await expect(roleManagementPage.successMessage).toBeVisible();
});
await test.step('3. 为角色分配权限', async () => {
await roleManagementPage.openPermissionDialog(1);
await roleManagementPage.selectPermission('system:user:view');
await roleManagementPage.selectPermission('system:user:add');
await roleManagementPage.submitPermissions();
await expect(roleManagementPage.successMessage).toBeVisible();
});
await test.step('4. 为用户分配角色', async () => {
await dashboardPage.navigateToUserManagement();
await userManagementPage.clickEditButton(1);
await userManagementPage.selectRole('UAT角色');
await userManagementPage.submitForm();
await expect(userManagementPage.successMessage).toBeVisible();
});
});
test('UAT-PERM-002: 角色权限验证', async ({ page }) => {
const loginPage = new LoginPage(page);
const dashboardPage = new DashboardPage(page);
const roleManagementPage = new RoleManagementPage(page);
await test.step('1. 管理员登录', async () => {
await loginPage.goto();
await loginPage.login('admin', 'admin123');
await page.waitForURL(/.*dashboard/);
});
await test.step('2. 导航到角色管理', async () => {
await dashboardPage.navigateToRoleManagement();
await expect(roleManagementPage.table).toBeVisible();
});
await test.step('3. 验证角色权限显示', async () => {
await roleManagementPage.clickPermissionButton(1);
await expect(page.locator('.permission-dialog')).toBeVisible();
const permissionCount = await page.locator('.permission-checkbox').count();
expect(permissionCount).toBeGreaterThan(0);
});
});
test('UAT-PERM-003: 权限撤销流程', async ({ page }) => {
const loginPage = new LoginPage(page);
const dashboardPage = new DashboardPage(page);
const roleManagementPage = new RoleManagementPage(page);
await test.step('1. 管理员登录', async () => {
await loginPage.goto();
await loginPage.login('admin', 'admin123');
await page.waitForURL(/.*dashboard/);
});
await test.step('2. 导航到角色管理', async () => {
await dashboardPage.navigateToRoleManagement();
await expect(roleManagementPage.table).toBeVisible();
});
await test.step('3. 撤销角色权限', async () => {
await roleManagementPage.openPermissionDialog(1);
await roleManagementPage.deselectPermission('system:user:delete');
await roleManagementPage.submitPermissions();
await expect(roleManagementPage.successMessage).toBeVisible();
});
});
});