Files
everything-is-suitable/everything-is-suitable-test/e2e/uniapp/pages/aigc-page.spec.ts
T
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

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();
});
});