Files
novalon-manage-system/novalon-manage-web/e2e/journeys/menu-management.spec.ts
T
张翔 e8f51309e5 test: E2E 测试用例更新与新增
- 更新 Page Object 模型适配新字段名
- 新增 UAT 测试套件与 journey 测试用例
- 优化测试辅助工具与数据工厂
- 更新 playwright 认证状态
2026-05-06 19:43:39 +08:00

59 lines
1.9 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
import { DashboardPage } from '../pages/DashboardPage';
import { MenuManagementPage } from '../pages/MenuManagementPage';
test.describe('User Journey: 菜单管理全链路', () => {
test.describe.configure({ mode: 'serial' });
const timestamp = Date.now();
const menuName = `E2E菜单_${timestamp}`;
test('UJ-03: 菜单创建→编辑→删除', async ({ page }) => {
const loginPage = new LoginPage(page);
const menuPage = new MenuManagementPage(page);
await test.step('登录', async () => {
await loginPage.goto();
await loginPage.login('admin', 'Test@123');
});
await test.step('导航到菜单管理', async () => {
await menuPage.goto();
});
await test.step('创建新菜单', async () => {
await menuPage.clickCreateMenu();
await menuPage.fillMenuForm({
name: menuName,
type: 'menu',
path: `/e2e-test-${timestamp}`,
icon: 'file',
component: `e2e/Test_${timestamp}`,
permission: `e2e:test_${timestamp}`,
sort: 99,
status: 'ACTIVE',
visible: true,
});
await menuPage.submitForm();
const success = await menuPage.containsText(menuName);
expect(success).toBe(true);
});
await test.step('编辑菜单', async () => {
await menuPage.editMenu(menuName);
const modal = page.locator('.ant-modal').filter({ hasText: /编辑菜单/ });
const nameInput = modal.locator('.ant-form-item').filter({ hasText: '菜单名称' }).locator('input');
await nameInput.clear();
await nameInput.fill(`${menuName}_已编辑`);
await menuPage.submitForm();
});
await test.step('删除菜单', async () => {
await menuPage.goto();
await menuPage.deleteMenu(`${menuName}_已编辑`);
await menuPage.confirmDelete();
});
});
});