68 lines
2.4 KiB
TypeScript
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();
|
|
});
|
|
});
|