order-refund-button
靶子 BASE=http://localhost:20098 夹具前缀=E2ERFD
── ① 结构:绑定脚本必须排在 jQuery 之后 ──
✔ 两个锚点都在渲染产物里 (jq@29395 bind@41625)
✔ 🔴 jQuery(@29395) 排在绑定脚本(@41625)之前
✔ 🔴 页面零 "$ is not defined" (got=0 want=0)
── ② 行为:可退单上三步链走得通 ──
✔ 可退单渲染成可点的 <button> (got="BUTTON" want="BUTTON")
✔ 🔴 按钮上恰好绑了 1 类事件处理器(= 脚本真的跑过) (got=1 want=1)
✔ 第 1 步:确认弹窗弹出(只有链路跑通才有的中间产物)
✔ 🔴 第 1 步期间零 POST (got=0 want=0)
✔ 🔴 取消 → 零 POST(闸还拦得住) (got=0 want=0)
✔ 第 2 步:弹出理由输入框
✔ 🔴 第 2 步期间仍零 POST (got=0 want=0)
✔ 🔴 理由留空 → 零 POST(空值守卫仍在) (got=0 want=0)
✔ 🔴 三步走完 → POST 恰好发出 1 个 (got=1 want=1)
✔ 发出的是 richangyunying_daifaqi_tuikuan
── ③ 一致:不可退单置灰,原因与后端拒绝时逐字相同 ──
✔ 已结清单上没有可点的退款按钮 (got=0 want=0)
✔ 渲染成置灰的 span (got=1 want=1)
✔ 置灰按钮带原因: "该订单状态不支持退款(结清/终态不可)"
✔ 后端确实拒绝了这张单 (got="0" want="0")
✔ 🔴 页面置灰原因 与 后端拒绝文案 逐字相同(两处共用 _refundIneligibleMsg) (got="该订单状态不支持退款(结清/终态不可)" want="该订单状态不支持退款(结清/终态不可)")
── ④ 退款窗口倒计时 ──
✔ 🔴 已签收 + 冷静期未满 → 出现倒计时 (got=1 want=1)
✔ 剩余天数算对了(冷静期 7 天、签收于 1 天前 ⇒ 还剩 6 天): "还剩 6 天可退款:满 7 天后系统会自动结清本单,结清后无法再退款。"
✔ 倒计时说清了后果
✔ 🔴 已签收 + 冷静期已过 → 仍出现倒计时(另一分支) (got=1 want=1)
✔ 到期分支给的是"立即发起"而不是天数: "本单已达自动结清时间,系统下次自动结清后将无法再退款;如需退款请立即发起。"
✔ 🔴 待发货(3)的单【不】显示倒计时(自动结清扫不到它) (got=0 want=0)
✔ 🔴 不可退单【不】显示倒计时 (got=0 want=0)
✔ 🔴 全程零 JS 错误 ([]) (got=0 want=0)
✔ 夹具已清理干净(净零) (got="0" want="0")
PASS=27 FAIL=0