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.
 
 
 
 
 

2.6 KiB

05 — 测试数据 seed 脚本(API 幂等)

Type: task Status: resolved Blocked by: 03, 04(均已解决)

Question

写并执行 .scratch/opportunity-e2e/seed-opportunity.py,在远程 DB 造商机业务数据精简矩阵(用户/部门/角色/字典等基础数据不动):

  • 约 15 条商机:待领取(公海) / 推进中 / 暂缓中 / 已关闭 各 2-3 条,跨 2 个部门归属(验 DataScope 四视图差异);
  • 推进中商机带样例:跟进记录 ≥1、方案卡 ≥1(主要意向客户卡带预算)、团队成员 1-2 人;抽 1-2 条带现场勘察、附件引用、关注、自定义视图(crm-preference saved view);
  • 幂等可重跑:按票 04 拍板的标记约定先清后造;清理只动自己造的行,不碰他人数据;
  • 顺带验证:seed 全程走真实 API,任何一步非预期响应都记入缺陷草稿(这是 E2E 的第一手数据)。

产出:seed-opportunity.py + seed-data-manifest.md(每条数据 id→形态→用途,demo 与 E2E 都按它取数)。

Answer

已解决 · 20260828 · 产出 seed-opportunity.py(593 行,幂等可重跑,重跑 5 次验证)+ seed-data-manifest.md + seed-manifest.json(机读)。

落地矩阵(12 条商机,全部 e2e- 前缀):待领取 2(A/B 各 1,release-pool 造)+ 推进中 6(3 部门归属,含阶段切 seq2/seq3 样例)+ 暂缓 2(pause)+ 已关闭 2(close);已转项目(5) 按拍板不造。子表/偏好样例:跟进×2、勘察×1、方案卡×1(草稿→已提交,预算 88 万)、关联客户×1(DB 直插——add API 不存在,缺陷证据)、关注×1(A 关注 B)、自定义视图×1(B,scopeKey=opportunity)。规则前置:公海规则 + 方案卡模板各 1 条发布中(copy→publish,重跑幂等复用)。

校验全过:MANAGE=12 / PUBLIC_POOL=2 / A_MINE=4 / A_FOLLOWED=1;board summary 3 阶段分布;U01 实测:新建初始 oppStatus=2(推进中)

seed 过程实锤缺陷候选(喂票 07/09):① 关联客户无 add 端点(原型有按钮);② 团队成员无写端点(仅 team/list);③ 方案卡 valuesJson 的 fieldKey 只认绑定模板显示字段(66007);④ publish=保存并发布,校验请求 DTO 的 fields 列表(库里有不够);⑤ Result<Void> 端点 data=null(api 客户端勿当失败判)。

过程坑:清理级联删走 DB(API 无商机删除端点,8 控制器已核实);team/attachment 等 12 子表列名动态探测;文本值带类型猜错自愈(date/数字关键词替换)。