1.9 KiB
1.9 KiB
03 — 建立批量任务真实依赖的集成测试 Harness
What to build: Agent 和开发者可以通过一个可复用的 Go 集成测试 Harness,安全驱动真实 PostgreSQL、Redis DB 7、真实 S3、Fiber 后台认证和公开 Worker Handler。每次运行只创建、记录和清理带唯一运行标识的资源,测试失败也不会清空或污染共享环境。
Blocked by: .scratch/ur36-bulk-package-purchase/issues/02-controlled-upload-object-ownership.md — 02 — 交付受控直传与对象归属证明
Status: ready-for-agent
架构通道: Infrastructure。
完整业务边界: 本票收口本需求及后续同类批量任务需要的安全集成测试基础设施。明确不替换全仓测试框架、不创建新 PostgreSQL 数据库、不使用 S3 内存替身、不通过等待真实后台 Worker 抢任务完成断言。
- Harness 启动时读取最终生效配置,并确认普通 Redis Client、Asynq Client 和 Worker Server 均使用 DB 7;任一不符时在写入前失败。
- Harness 支持唯一
run_id、测试账号与真实认证、Fiber 请求、统一响应解码、真实 S3 上传及公开 Worker Handler 驱动。 - 待投递任务可在应用公开注入点被受控捕获,并以结构化
task_id调用 Handler,不依赖sleep或私有处理函数。 - PostgreSQL、Redis 和 S3 资源进入精确清理台账;成功和失败清理只操作本次创建的主键、Key 和对象,不执行 TRUNCATE、FLUSHDB、前缀扫描或 Bucket 清理。
- 清理失败输出安全诊断和未清理资源标识,不输出数据库密码、Token、对象存储密钥、预签名 URL 或完整敏感数据。
- 固定
testdata覆盖 UTF-8、BOM、非法表头、重复资产、多代理、钱包不足和线下凭证,并至少提供一个穿过公开 HTTP 与 Worker 边界的示例。