# 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 边界的示例。

