Files

26 lines
1.4 KiB
Markdown

# 市场概览 E2E 测试时钟隔离设计
## 根因与方案
`MarketOverviewService` 使用 `new Date()` 生成 `asOf`,再按上海日期判断行情是否延迟。服务单测已经在 suite 级固定时钟,HTTP E2E 没有采用同一模式。设计在 E2E 的 `beforeEach/afterEach` 建立请求级测试时钟边界,不向生产服务注入测试专用接口。
## 数据流
固定系统时间 → 启动 Nest 测试应用 → Controller 调用真实 Service → Service 将固定夹具识别为当日行情 → HTTP 断言 → 关闭应用 → 恢复系统时间。
## 错误与恢复
应用引用保持可选,`afterEach` 无论断言是否成功都关闭应用并恢复真实时钟。不得吞掉 HTTP 或关闭错误。
## 安全策略与评估
测试客户端完全使用内存 mock,不连接 TDX;生产时间和数据状态逻辑保持原样。功能档案只记录相对路径和脱敏统计,无凭据、本机用户目录、网络身份或 PID。
## 性能目标与评估
fake timers 是进程内操作,不增加 I/O、网络或依赖。定向测试应保持 2 秒内完成,完整门禁不增加外部负载。
## 架构与同步边界
变更限定在 `server/apps/api/test/market-overview.e2e-spec.ts`。HTTP/OpenAPI、Web、消息契约、MySQL、Redis、Scheduler、Worker 和部署均无需同步;功能档案和 Review 证据同步更新。