feat: implement core UAT test scenarios
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user