Files
a-share-analysis/docs/features/FEAT-QA-001-e2e-clock-isolation/design.md
T

1.4 KiB

市场概览 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 证据同步更新。