ajax-failure-visible
靶子 http://localhost:20098
【组 A 后台 —— 三种静默失败必须弹出来】
✅ 会员列表上找得到详情页入口(否则下面全是空转)
✅ 🔴 会话过期(服务端回 HTML):弹了恰好一次
✅ 🔴 会话过期:文案逐字是"登录可能已过期"那句
✅ 🔴 网络中断:弹了恰好一次
✅ 🔴 网络中断:文案逐字是"网络连接中断"那句
✅ 🔴 HTTP 500:弹了恰好一次
✅ 🔴 HTTP 500:文案逐字是"服务器出错"那句
✅ 🔴 守卫:正常 JSON 拒绝只弹一次(不与本地提示重复)
✅ 守卫:弹的是后端给的那句,不是兜底文案
✅ 🔴 守卫:成功时一次都不弹
✅ 主动 abort 确实发生了(否则下面在空转)
✅ 🔴 守卫:主动 abort 的请求不弹窗
✅ 🔴 守卫:翻页取消在飞的请求时不误报
【组 B 前台 —— 三种静默 + 前台特有的 HTML 走 success】
✅ 🔴 前台会话过期(HTML 走 success):弹了恰好一次
✅ 🔴 前台会话过期:文案逐字对
✅ 🔴 前台网络中断:弹了恰好一次
✅ 前台网络中断:文案逐字对
✅ 🔴 前台 HTTP 500:弹了恰好一次
✅ 前台 HTTP 500:文案逐字对
✅ 🔴 前台守卫:正常 JSON 响应不弹
✅ 🔴 前台守卫:显式 dataType:'text' 的正常响应不误伤
【组 C 覆盖率 —— 5 个落点 + 真实渲染出来的页面都带钩子】
✅ 落点清单非空(否则下面那条对任何实现都恒真)
✅ 🔴 5 个落点片段逐个都含钩子(差集必须为空)
✅ 覆盖:前台首页(default) 渲染出来的页面里有钩子
✅ 覆盖:前台首页(blue_gaztano) 渲染出来的页面里有钩子
✅ 覆盖:前台用户中心 渲染出来的页面里有钩子
✅ 覆盖:前台我的作品 渲染出来的页面里有钩子
✅ 覆盖:后台会员列表 渲染出来的页面里有钩子
【组 D 迁移证明 —— 全程一个原生弹窗都不许有】
✅ 🔴 全程没有任何原生 alert/confirm/prompt
=== PASS=29 FAIL=0 ===