Files
everything-is-suitable/everything-is-suitable-uniapp/e2e/almanac-search.spec.ts
T
zhangxiang 3a428d8977 test: 补充 Phase 3 专项测试并更新测试报告
新增性能基准测试、安全验证、国际化完整性验证等专项测试;
修复 E2E 测试选择器与当前 UI 不匹配问题;
补充多语言 locale 缺失的 key;
更新 Playwright 配置支持跨浏览器测试;
同步更新测试报告与 README 进度章节。

单元测试 408/408 通过,E2E 测试 39/39 通过(4 种浏览器),
专项测试 47/47 通过,整体覆盖率 77.5%。
2026-08-12 20:10:39 +08:00

57 lines
1.9 KiB
TypeScript

import { test, expect } from '@playwright/test';
test.describe('黄历搜索功能E2E测试', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/#/pages/almanac-search/index');
await page.waitForLoadState('networkidle');
await page.waitForTimeout(1000);
});
test.describe('TC-SEARCH-001: 页面结构', () => {
test('应该显示页面标题', async ({ page }) => {
const pageTitle = page.locator('.page-title')
await expect(pageTitle).toBeVisible()
})
test('应该显示搜索条件面板', async ({ page }) => {
const pageContent = page.locator('.page-content')
await expect(pageContent).toBeVisible()
})
test('应该显示底部导航', async ({ page }) => {
const bottomNav = page.locator('.page')
await expect(bottomNav).toBeVisible()
})
})
test.describe('TC-SEARCH-002: 空状态显示', () => {
test('初始状态应显示空状态', async ({ page }) => {
await page.waitForTimeout(1000)
// 未搜索时显示 EmptyState 或空内容
const emptyState = page.locator('.page-content')
await expect(emptyState).toBeVisible()
})
})
test.describe('TC-SEARCH-003: 响应式设计', () => {
test('应该在移动端正常显示', async ({ page }) => {
await page.setViewportSize({ width: 375, height: 667 });
await page.reload();
await page.waitForLoadState('networkidle');
await page.waitForTimeout(1000);
const pageTitle = page.locator('.page-title')
await expect(pageTitle).toBeVisible()
})
test('应该在桌面端正常显示', async ({ page }) => {
await page.setViewportSize({ width: 1920, height: 1080 });
await page.reload();
await page.waitForLoadState('networkidle');
await page.waitForTimeout(1000);
const pageTitle = page.locator('.page-title')
await expect(pageTitle).toBeVisible()
})
})
})