Files
novalon-manage-system/uat-tests/scenarios/role-management/role-assignment.spec.ts
T
2026-03-25 09:49:12 +08:00

68 lines
2.4 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { LoginPage } from '../../../novalon-manage-web/e2e/pages/LoginPage';
import { UserManagementPage } from '../../pages/UserManagementPage';
import { RoleManagementPage } from '../../../novalon-manage-web/e2e/pages/RoleManagementPage';
import { UATHelper } from '../../utils/uat-helper';
import { DataLoader } from '../../utils/data-loader';
test.describe('UAT - 角色管理场景', () => {
let loginPage: LoginPage;
let userManagementPage: UserManagementPage;
let roleManagementPage: RoleManagementPage;
let helper: UATHelper;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
userManagementPage = new UserManagementPage(page);
roleManagementPage = new RoleManagementPage(page);
helper = new UATHelper(page);
const adminUser = DataLoader.getUserByRole('admin');
await loginPage.goto();
await loginPage.login(adminUser.username, adminUser.password);
});
test('角色分配与权限验证', async ({ page }) => {
await roleManagementPage.goto();
await helper.waitForElement('[data-testid="role-table"]');
await roleManagementPage.clickCreateRole();
const timestamp = Date.now();
const roleData = {
roleName: `测试角色_${timestamp}`,
roleKey: `ROLE_${timestamp}`,
description: '这是一个测试角色',
permissions: ['user:read', 'user:write']
};
await roleManagementPage.fillRoleForm(roleData);
await roleManagementPage.submitForm();
await helper.verifySuccessMessage('创建成功');
await helper.waitForPageLoad();
await expect(roleManagementPage.table).toContainText(roleData.roleName);
await userManagementPage.navigateTo();
await helper.waitForElement('[data-testid="user-table"]');
await userManagementPage.editUser(1);
await page.selectOption('select[name="role"]', roleData.roleName);
await userManagementPage.submitForm();
await helper.verifySuccessMessage('更新成功');
await userManagementPage.logout();
const testUser = DataLoader.getUserByRole('user');
await loginPage.goto();
await loginPage.login(testUser.username, testUser.password);
await page.goto('/user-management');
await helper.waitForElement('[data-testid="user-table"]');
await expect(page.locator('[data-testid="create-user-button"]')).not.toBeVisible();
});
});