08ea5fbe98
添加用户管理视图、API和状态管理文件
88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
/**
|
|
* UniApp AIGC页面E2E测试
|
|
*
|
|
* 测试AIGC页面的所有功能和交互
|
|
*
|
|
* @tags @aigc @uniapp @e2e @page
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test';
|
|
import { TestLogger } from '../../core/test-logger.js';
|
|
|
|
test.describe('E2E: UniApp AIGC页面', () => {
|
|
let logger: TestLogger;
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
logger = new TestLogger();
|
|
await page.goto('http://localhost:8081/pages/aigc/index');
|
|
await page.waitForLoadState('networkidle');
|
|
});
|
|
|
|
test('应该显示AIGC页面内容 @smoke', async ({ page }) => {
|
|
await expect(page.locator('.aigc-container, .aigc-page')).toBeVisible();
|
|
});
|
|
|
|
test('应该显示输入区域 @smoke', async ({ page }) => {
|
|
await expect(page.locator('.input-area, textarea, .prompt-input')).toBeVisible();
|
|
});
|
|
|
|
test('应该能够输入提示词 @regression', async ({ page }) => {
|
|
const input = page.locator('.input-area textarea, .prompt-input').first();
|
|
await input.fill('生成一个黄历查询');
|
|
await expect(input).toHaveValue('生成一个黄历查询');
|
|
});
|
|
|
|
test('应该能够提交生成请求 @critical', async ({ page }) => {
|
|
const input = page.locator('.input-area textarea, .prompt-input').first();
|
|
await input.fill('生成一个黄历查询');
|
|
|
|
const submitBtn = page.locator('.submit-btn, .generate-btn, button:has-text("生成")').first();
|
|
await submitBtn.click();
|
|
|
|
// 验证加载状态
|
|
await expect(page.locator('.loading, .generating')).toBeVisible();
|
|
});
|
|
|
|
test('应该显示生成结果 @critical', async ({ page }) => {
|
|
// 等待生成完成
|
|
await page.waitForTimeout(3000);
|
|
|
|
// 验证结果显示
|
|
await expect(page.locator('.result-area, .output-content, .generated-content')).toBeVisible();
|
|
});
|
|
|
|
test('应该能够复制结果 @regression', async ({ page }) => {
|
|
const copyBtn = page.locator('.copy-btn, button:has-text("复制")').first();
|
|
if (await copyBtn.isVisible()) {
|
|
await copyBtn.click();
|
|
// 验证复制成功提示
|
|
await expect(page.locator('.toast, .uni-toast')).toContainText('复制成功').catch(() => {
|
|
logger.info('复制提示可能以其他形式显示');
|
|
});
|
|
}
|
|
});
|
|
|
|
test('应该能够清空输入 @regression', async ({ page }) => {
|
|
const input = page.locator('.input-area textarea, .prompt-input').first();
|
|
await input.fill('测试文本');
|
|
|
|
const clearBtn = page.locator('.clear-btn, button:has-text("清空")').first();
|
|
if (await clearBtn.isVisible()) {
|
|
await clearBtn.click();
|
|
await expect(input).toHaveValue('');
|
|
}
|
|
});
|
|
|
|
test('应该显示历史记录 @regression', async ({ page }) => {
|
|
await expect(page.locator('.history-list, .history-section')).toBeVisible().catch(() => {
|
|
logger.info('历史记录区域可能不存在');
|
|
});
|
|
});
|
|
|
|
test('应该在不同视口下正常显示 @responsive', async ({ page }) => {
|
|
await page.setViewportSize({ width: 375, height: 667 });
|
|
await page.goto('http://localhost:8081/pages/aigc/index');
|
|
await expect(page.locator('.aigc-container')).toBeVisible();
|
|
});
|
|
});
|