cart-content-check
[target] clone=h8 port=20098 base=http://localhost:20098
目标: http://localhost:20098
✅ S0 debug 会员会话建立
✅ S0 夹具创建(未填副本×3)
── S1 session 族: 未填作品被 content_check 拦下
✅ S1 oracle 自检(夹具确有空页+缺图)
✅ S1 info=0 + reason=content_check
✅ S1 empty_pages 与独立 oracle 精确一致
✅ S1 missing_slots 与独立 oracle 精确一致
✅ S1 work_empty 与独立 oracle 精确一致
✅ S1 未入车
── S2 force=1 入车 + 重发幂等
✅ S2 force 后 info=1
✅ S2 入车恰 1 行
✅ S2 重发幂等(仍 1 行)
── S3 fail-closed(不存在的 tplid)
✅ S3 reason=unavailable
✅ S3 未入车
✅ S3 错误日志已落 jnc_log(corpid+tplid+uid 限定,前后差≥1)
✓ minted in jnc_ma (uid=2939 corp=1 client_type=30, access TTL 86400s)
── S4 填满作品(maskData 1→0)不带 force 直接放行
✅ S4 取到作品 XML
✅ S4 oracle 复算(替换后应为完整状态 missing=0)
✅ S4 xml_save 保存成功
✅ S4 不带 force 直接放行
✅ S4 已入车
── S5 Bearer 族(WxApi/addtoshoppingcart)契约
✅ S5 check-fail 明细
✅ S5 force 成功(去重幂等仍 1 行)
── S6 H5 编辑器 UI(确认弹窗/返回编辑/先保存链/仍要加入)
✅ S6a 确认弹窗出现且含缺图文案
✅ S6a 返回编辑未入车
✅ S6b 注入真实编辑(首个 photo 坐标 → 哨兵 7777/6666)
✅ S6b dirty 时 flashSave 响应完成先于加购请求
✅ S6b flashSave payload 携带本次编辑(哨兵坐标)
✅ S6b 仍要加入后入车
✅ S6b 服务端读回 XML 含本次编辑(入车内容=当前画布)
── 清理夹具
✅ 清理后购物车无残留
[cleanup] deleted 3/3
✅ 清理:本次新建的 3 件作品已删净(基线 181 件不动)
结果: 30 通过 / 0 失败 | 截图+result.json: /data/AICode/e2e/ma_dev_v2/ma/bin/workspace/test-results/playwright-images/cart-content-check