## Why 前端 E2E 测试当前只启动 Vite dev server,不启动后端。所有涉及写操作(创建/编辑/删除供应商、模型)的测试无法验证数据是否真正持久化,大量测试在缺少数据时直接 skip。测试实质上只是 UI 组件存在性检查,不是真正的端到端验证。后端已有完善的 CLI 参数机制(`--server-port`、`--database-path` 等)和 SQLite 文件数据库,具备每次测试使用干净隔离环境的天然条件。 ## What Changes - Playwright 配置改为双 `webServer` 模式,自动启动 Go 后端(隔离临时数据库)+ Vite 前端 - `vite.config.ts` 的 proxy target 改为通过环境变量动态配置,E2E 时指向测试后端(19026),日常开发回退默认值(9826) - 新增 `e2e/fixtures.ts` 共享工具模块,提供 API seed 和 SQLite seed(通过 sql.js 直接操作临时数据库插入统计数据) - 新增 `e2e/global-setup.ts` 和 `e2e/global-teardown.ts` 管理临时目录生命周期 - 重写全部 E2E 测试文件(5→7 个),覆盖完整 CRUD 验证、统计数据验证、导航、表单校验 - 新增 `sql.js` + `@types/sql.js` 依赖(纯 WASM,零原生编译,Windows 兼容) ## Capabilities ### New Capabilities - `e2e-testing`: 前端 E2E 测试基础设施,定义 Playwright 双 webServer 启动模式、临时文件隔离、端口策略、环境变量传递、统计数据 seed 方式、测试文件组织结构 ### Modified Capabilities (无 — 现有 `test-coverage` spec 中的 E2E 要求不变,本 change 提供实现手段使其得到真正满足) ## Impact - **代码变更**: `frontend/vite.config.ts`(1 行)、`frontend/playwright.config.ts`(重写)、`frontend/e2e/` 目录(新增 5 文件 + 重写 3 文件 + 删除 2 文件) - **新增依赖**: `sql.js`、`@types/sql.js`(devDependencies) - **后端无变更**: 仅通过 CLI 参数以隔离模式启动现有后端,不修改后端代码 - **开发体验零侵入**: 日常 `bun run dev` 行为不变,仅 `bun run test:e2e` 启动真实后端