test(web): 补充 Web MVP 端到端测试与本地测试编排
- 新增 Playwright E2E(治理、登录、投瓶捞瓶回复与实时聊天、举报拉黑与断线恢复)共 9 条用例 - 每个用例前重置数据库、用例后关闭全部 browser context,消除跨用例污染与资源泄漏 - 前端改由 Playwright 托管构建与 preview(关闭 SW);Vite 代理注入 Origin 头以通过接口 Origin 校验 - 根级 vitest 排除 Playwright 用例与需专用配置的 web 用例,避免误收集导致的假失败 - 测试手机号按实测校验结果收敛白名单,避免用例传入会被后端拒绝的号段 验证结果: - Web E2E 9/9 连续两轮通过(含运行前后服务健康检查) - API E2E 146/146 连续两轮通过 - 单测:根级 14 文件/119 用例、web 包 8 文件/31 用例通过 - typecheck、lint、build、依赖审计(audit)均通过
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { test as base, expect } from "@playwright/test";
|
||||
import { resetDatabase } from "./global-setup";
|
||||
|
||||
/**
|
||||
* 所有 E2E 用例共用:
|
||||
* - beforeEach:清库,避免上一用例残留的瓶子/租约让「捞取」拿到别人的瓶子
|
||||
* - afterEach:关闭本用例打开的所有 context。用例中途失败时若不关闭,context
|
||||
* (页面/连接/内存)会一直累积,机器内存与 fd 有限,后续用例会成片失败。
|
||||
*/
|
||||
export const test = base;
|
||||
|
||||
test.beforeEach(async () => {
|
||||
await resetDatabase();
|
||||
});
|
||||
|
||||
test.afterEach(async ({ browser }) => {
|
||||
for (const context of browser.contexts()) {
|
||||
await context.close().catch(() => undefined);
|
||||
}
|
||||
});
|
||||
|
||||
export { expect };
|
||||
Reference in New Issue
Block a user