Files
gym-manage/e2e-tests/debug/create-role-debug.spec.ts
T

88 lines
3.6 KiB
TypeScript

import { test, expect } from '@playwright/test';
test.describe('调试创建角色功能', () => {
test('调试创建角色流程', async ({ page }) => {
const timestamp = Date.now();
const roleName = `测试角色_${timestamp}`;
const roleKey = `test_role_${timestamp}`;
await test.step('导航到角色管理', async () => {
await page.goto('/dashboard');
await page.waitForLoadState('networkidle');
await page.locator('text=系统管理').click();
await page.waitForTimeout(500);
await page.locator('text=角色管理').click();
await page.waitForLoadState('networkidle');
await expect(page).toHaveURL(/.*roles/, { timeout: 10000 });
});
await test.step('点击创建角色按钮', async () => {
await page.locator('button:has-text("新增角色")').click();
await page.waitForSelector('.el-dialog', { state: 'visible', timeout: 5000 });
await page.screenshot({ path: 'test-results/debug-1-dialog-opened.png' });
});
await test.step('填写角色信息', async () => {
const dialog = page.locator('.el-dialog');
const roleNameInput = dialog.locator('input').first();
await roleNameInput.fill(roleName);
await roleNameInput.blur();
await page.waitForTimeout(300);
await page.screenshot({ path: 'test-results/debug-2-filled-roleName.png' });
const roleKeyInput = dialog.locator('input').nth(1);
await roleKeyInput.fill(roleKey);
await roleKeyInput.blur();
await page.waitForTimeout(300);
await page.screenshot({ path: 'test-results/debug-3-filled-roleKey.png' });
const roleSortInput = dialog.locator('.el-input-number .el-input__inner');
await roleSortInput.fill('99');
await roleSortInput.blur();
await page.waitForTimeout(300);
await page.screenshot({ path: 'test-results/debug-4-filled-roleSort.png' });
console.log('Filled form with:', { roleName, roleKey, roleSort: 99 });
const formItems = await dialog.locator('.el-form-item').all();
console.log('Number of form items:', formItems.length);
for (let i = 0; i < formItems.length; i++) {
const label = await formItems[i].locator('.el-form-item__label').textContent();
const hasError = await formItems[i].locator('.el-form-item__error').isVisible().catch(() => false);
if (hasError) {
const errorText = await formItems[i].locator('.el-form-item__error').textContent();
console.log(`Form item "${label}" has error: ${errorText}`);
}
}
});
await test.step('提交表单', async () => {
await page.screenshot({ path: 'test-results/debug-5-before-submit.png' });
await page.locator('.el-dialog button:has-text("确定")').click();
await page.waitForTimeout(1000);
await page.screenshot({ path: 'test-results/debug-6-after-submit-1s.png' });
await page.waitForTimeout(2000);
await page.screenshot({ path: 'test-results/debug-7-after-submit-3s.png' });
const dialogVisible = await page.locator('.el-dialog').isVisible();
console.log('Dialog visible after submit:', dialogVisible);
const successMessage = await page.locator('.el-message--success').isVisible().catch(() => false);
console.log('Success message visible:', successMessage);
const errorMessage = await page.locator('.el-message--error').isVisible().catch(() => false);
console.log('Error message visible:', errorMessage);
if (errorMessage) {
const errorText = await page.locator('.el-message--error').textContent();
console.log('Error message text:', errorText);
}
});
});
});