You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

84 lines
12 KiB

== 客户域增量套件(r2 票 02)== TS=660049 PFX=e2c-r2i
== setup:夹具客户 A/B ==
pass [SETUP] 夹具客户 A/B 就位(快照 NULL / 编号回填) — A=KH202609060005 B=KH202609060006
== I-01 战略协议全链 ==
pass [I-01] 新客户协议列表为空(List 非分页,时间倒序) — []
pass [I-01] 新客户快照 NULL=未签 — snapshot=None
pass [I-01] create 缺 customerId → 67001(入参非法) — code=67001 如预期
pass [I-01] create 幽灵客户 → 67002(防探测同码) — code=67002 如预期
pass [I-01] create agreementLevel=9 越界 → 67017 — code=67017 如预期
pass [I-01] create 缺 agreementLevel → 67017(等级缺失) — code=67017 如预期
pass [I-01] create 回协议 id(Result<Long>) — id=751743642858684416
pass [I-01] 快照联动:create 后=2(最新一条回写,不 bump version) — snapshot=2
pass [I-01] list 含新协议 — ids=['751743642858684416']
pass [I-01] detail 回显(等级/归属/客户名快照/金额文本) — {'id': '751743642858684416', 'createTime': '2026-09-06 10:00:51', 'updateTime': '2026-09-06 10:00:51', 'customerId': '751743636604977152', '
pass [I-01] edit 成功(Result<Void>) — code=0
pass [I-01] 快照联动:edit 后=3 — snapshot=3
pass [I-01] 归属不可换(dto.customerId 忽略,编辑以库内归属为准) — detail.customerId=751743636604977152 B快照=None
pass [I-01] amount 65 字超长 → 67017 — code=67017 如预期
pass [I-01] detail 幽灵协议 → 67017 — code=67017 如预期
pass [I-01] edit 幽灵协议 → 67017 — code=67017 如预期
pass [I-01] delete 幽灵协议 → 67017 — code=67017 如预期
pass [I-01] delete 成功(软删) — code=0
pass [I-01] 快照联动:删空后=NULL(未签) — snapshot=None
pass [I-01] list 终态空 — []
pass [I-01] oplog 记 AGREEMENT_ADD/EDIT/DELETE 三写动作 — actions=['AGREEMENT_DELETE', 'AGREEMENT_EDIT', 'AGREEMENT_EDIT', 'AGREEMENT_ADD', 'CREATE']
warn [I-01] oplog detail 等级文案(新增战略协议【二级】) — detail=新增战略协议【二级】
== I-02 联系人 oplog(CONTACT_*)==
pass [I-02] contact create 回 id — id=751743654447546368
pass [I-02] contact edit 成功 — code=0
pass [I-02] contact delete 成功(软删) — code=0
pass [I-02] 六种新 action 齐现(AGREEMENT ×3 + CONTACT ×3) — 缺=[]
pass [I-02] 全部 action 落在 17 种值域内 — 越界=[]
pass [I-02] action= 过滤生效(仅 AGREEMENT_ADD) — n=1 actions=['AGREEMENT_ADD']
== I-03 查重设置(crm-rule 客户规则族)==
pass [I-03] GET 单例可读(CustomerXxxRuleInitializer 首装种子) — {'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarityThreshold': 80, 'phoneEnabled': 1, 'upd
pass [I-03] save 全量覆盖:响应回显保存后单例(精确/60%) — {'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 1, 'similarityThreshold': 60, 'phoneEnabled': 1, 'upd
pass [I-03] save→get 回读一致 — {'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 1, 'similarityThreshold': 60, 'phoneEnabled': 1, 'upd
pass [I-03] 开关缺省→0 / 方式缺省→模糊(2) / 阈值显式保留 — {'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 2, 'similarityThreshold': 90, 'phoneEnabled': 0, 'upd
pass [I-03] 阈值缺省 → 出厂 80(非静默保留 90,a7-3-3-2 §4.1 口径) — {'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 1, 'similarityThreshold': 80, 'phoneEnabled': 0, 'upd
pass [I-03] nameMatchMode=9 ∉ {1,2} → 64023 — code=64023 如预期
pass [I-03] similarityThreshold=101 出 [0,100] → 64023 — code=64023 如预期
pass [I-03] similarityThreshold=-1 出 [0,100] → 64023 — code=64023 如预期
pass [I-03] 64023 校验失败未落库(精确/80 保持) — {'id': '1', 'masterEnabled': 0, 'nameEnabled': 0, 'nameMatchMode': 1, 'similarityThreshold': 80, 'phoneEnabled': 0, 'upd
pass [I-03] 查重设置还原原值 — 原={'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarityThreshold': 80, 'phoneEnabled': 1} 现={'id': '1', 'masterEnabled': 1, 'nameEnabled': 1, 'nameMatchMode': 2, 'similarit
== I-04 批量工商更新(company-lookup/batch-update)==
pass [I-04] 两客户 stub 恒 NO_HIT(五状态软处置;filledFields=0) — [{'customerId': '751743636604977152', 'customerName': 'e2c-r2i-A-660049', 'status': 'NO_HIT', 'filledFields': 0, 'message': '工商源未查询到匹配企业'}, {'customerId': '7517
pass [I-04] NO_HIT 无回填:档案前后全等(只补空缺的空转证据) — before={'A': ('e2c-r2i-A-660049', None, 'gov'), 'B': ('e2c-r2i-B-660049', None, 'gov')} after={'A': ('e2c-r2i-A-660049', None, 'gov'), 'B': ('e2c-r2i-B-660049', None, 'gov')}
pass [I-04] 幽灵客户 → 行级 NOT_FOUND(不整单失败) — [{'customerId': '999999999999999', 'customerName': None, 'status': 'NOT_FOUND', 'filledFields': 0, '
pass [I-04] 空 ids → 67001/400/40001 拒绝 — code=40001 msg=缺少必填参数:ids
pass [I-04] 单次超上限 100 → 67001 — code=67001 如预期
== I-05 详情触达 viewTouch(customer_view_log)==
pass [I-05] 首访 detail-head 插入 view_log(UNIQUE(user_id,customer_id)) — rows=1 t1=2026-09-06 10:00:58
pass [I-05] 再访 upsert:仍 1 行 + last_view_time 刷新(RECENT 视图锚点) — rows=1 t1=2026-09-06 10:00:58 t2=2026-09-06 10:01:00
pass [I-05] 不同用户各占一行(user 维度隔离) — rows=2
== I-06 形态偏好(crm-preference view-form)==
pass [I-06] get 回 String(null=未设置,前端默认 list) — orig='list'
pass [I-06] save split → get=split — get='split'
pass [I-06] save board → get=board(白名单三值皆合法) — get='board'
pass [I-06] 跨用户隔离(B 写不串 S) — S get='board'
pass [I-06] viewForm=card ∉ {list,split,board} → 68001 — code=68001 如预期
warn [I-06] pool·board 被接受 ⚠ 契约漂移(§2.14 称拒绝;实现白名单无 pool 特判)——记档,票 06 聚合 — code=0(漂移非缺陷:归 Bruno/API-SUMMARY 文档侧处置)
pass [I-06] mine 还原为 'list' — get='list'
pass [I-06] pool 还原为 'list'
== I-07 导入 duplicateStrategy(F8)==
pass [I-07] SKIP 上传:回显 SKIP + 重复组全失败不写入(t=2 i=0 u=0) — {'taskId': '751743692309528576', 'importMode': 'UPDATE_ONLY', 'duplicateStrategy': 'SKIP', 'totalCount': 2, 'insertCount': 0, 'updateCount': 0, 'failCount': 2,
pass [I-07] OVERWRITE 上传:回显 OVERWRITE + 仅末行生效(u=1) — {'taskId': '751743693240664064', 'importMode': 'UPDATE_ONLY', 'duplicateStrategy': 'OVERWRITE', 'totalCount': 2, 'insertCount': 0, 'updateCount': 1, 'failCount'
pass [I-07] duplicateStrategy=BOGUS 非法 → 67013 — code=67013 如预期
pass [I-07] SKIP 执行 DONE:星级=3 — star=3
pass [I-07] OVERWRITE 执行 DONE:星级=5 — star=5
== teardown:正门 archive + DB 兜底清扫 ==
pass [TEARDOWN] 客户 A 正门 archive — code=0
pass [TEARDOWN] 客户 B 正门 archive — code=0
pass [TEARDOWN] e2c-r2i-* DB 兜底清扫(含 oplog/contact/agreement/view_log) — 客户行 2 组
导入任务留痕(对齐 heavy F-14 先例,不作清理)
== 汇总 == ✅61 ⚠2 ❌0 耗时 18s specimens=20
✔ 落盘 e2e-incr-checks.json / specimens-incr.json