view-switch-entries

20260916-181749 轮 · 看它的历史
✔ ensure-h5:public/h5 已是当前源码构建的,无需重建

=== A · 主题 default —— 「手机版」入口何时出现 ===
  PASS  守卫[default]:桌面 UA 没有被分流
   桌面1440: {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  PASS  守卫[default]:链接仍在 DOM 里(改的是显示,不是删除)
  PASS  守卫[default]:桌面 UA 没有被打上 .ua-mobile
  PASS  🔴 A1[default]:桌面 UA + 宽视口 → 「手机版」**不显示**
  PASS  🔴 A1[default]:隐藏时**没有吊着的竖线**(分隔符和链接在同一个容器里)
  PASS  守卫[default]:整行文本里确实不含「手机版」
   桌面800 : {"inDom":true,"uaClass":false,"display":"inline","visible":true,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城 | 手机版","sameRow":true,"trailingPipe":false}
  PASS  🔴 A2[default]:视口 ≤900px → 出现(靠视口门,不靠 UA)
  PASS  🔴 A2[default]:它是 inline —— 与页脚链接行同排,不自己占一行
  PASS  🔴 A2[default]:与「关于我们」在**同一条基线**上
  PASS  🔴 A2[default]:整行读作「…| 手机版」
  PASS  守卫[default]:jnc_view=d 时手机 UA 不被分流
   手机1440: {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[default]:手机 UA → 模板打上 .ua-mobile  → {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[default]:手机 UA + 宽视口 → 出现(靠 UA 门,视口门此时不命中)  → {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[default]:同样并在页脚链接行里  → "关于我们 | 使用指引 | 积分商城"
  PASS  守卫[default]:它指向 view_switch/to/m

=== A · 主题 blue_gaztano —— 「手机版」入口何时出现 ===
  PASS  守卫[blue_gaztano]:桌面 UA 没有被分流
   桌面1440: {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  PASS  守卫[blue_gaztano]:链接仍在 DOM 里(改的是显示,不是删除)
  PASS  守卫[blue_gaztano]:桌面 UA 没有被打上 .ua-mobile
  PASS  🔴 A1[blue_gaztano]:桌面 UA + 宽视口 → 「手机版」**不显示**
  PASS  🔴 A1[blue_gaztano]:隐藏时**没有吊着的竖线**(分隔符和链接在同一个容器里)
  PASS  守卫[blue_gaztano]:整行文本里确实不含「手机版」
   桌面800 : {"inDom":true,"uaClass":false,"display":"inline","visible":true,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城 | 手机版","sameRow":true,"trailingPipe":false}
  PASS  🔴 A2[blue_gaztano]:视口 ≤900px → 出现(靠视口门,不靠 UA)
  PASS  🔴 A2[blue_gaztano]:它是 inline —— 与页脚链接行同排,不自己占一行
  PASS  🔴 A2[blue_gaztano]:与「关于我们」在**同一条基线**上
  PASS  🔴 A2[blue_gaztano]:整行读作「…| 手机版」
  PASS  守卫[blue_gaztano]:jnc_view=d 时手机 UA 不被分流
   手机1440: {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[blue_gaztano]:手机 UA → 模板打上 .ua-mobile  → {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[blue_gaztano]:手机 UA + 宽视口 → 出现(靠 UA 门,视口门此时不命中)  → {"inDom":true,"uaClass":false,"display":"none","visible":false,"href":"/index.php/Index/view_switch/to/m","rowText":"关于我们 | 使用指引 | 积分商城","sameRow":false,"trailingPipe":false}
  FAIL  🔴 A3[blue_gaztano]:同样并在页脚链接行里  → "关于我们 | 使用指引 | 积分商城"
  PASS  守卫[blue_gaztano]:它指向 view_switch/to/m

=== A0 · Vary: User-Agent 的覆盖面 ===
   /Index/login → 200  Vary: User-Agent,Sec-CH-UA-Mobile,Accept-Encoding
  PASS  守卫:login 页可匿名打开
  PASS  守卫:它确实渲染了页脚(否则这条 Vary 断言没有意义)
  PASS  🔴 A0:不走 mobileEntryRedirect 的页面也带 Vary: User-Agent

=== B · 匿名手机用户的逃生路径 ===
  PASS  守卫:手机 UA 打 / 确实被自动送到 /h5/(逃生口的前提)
   首页页脚: {"found":true,"text":"电脑版","h":30}
  PASS  🔴 B1:H5 **首页页脚**有「电脑版」(落地页就能看到)
   个人中心: {"hash":"#/pages/user_center/index","hasPc":true,"guestName":true}
  PASS  🔴 B2:匿名点「个人中心」**不再**被踢到登录页
  PASS  守卫:确实渲染的是未登录态(显示「访客」)
  PASS  🔴 B2:未登录态下「电脑版」那一条也在
  PASS  🔴 B3:点首页页脚的「电脑版」真的离开了 H5
  PASS  🔴 B3:种下了 jnc_view=d
  PASS  🔴 B3:再打 / 不会被弹回 H5(偏好生效)
  PASS  🔴 B3:此时页脚「手机版」可见 —— 往返闭环成立

=== C · 守卫:登录用户的个人中心没被改坏 ===
  ✗ mint FAILED in jnc_ma
异常: Error: Command failed: bash /data/AICode/e2e/ma_dev_v2/ma/bin/workspace/.claude/scripts/wxapi-token.sh
  ✗ mint FAILED in jnc_ma

    at genericNodeError (node:internal/errors:984:15)
    at wrappedFn (node:internal/errors:538:14)
    at checkExecSyncError (node:child_process:891:11)
    at execFileSync (node:child_process:927:15)
    at mintToken (/data/AICode/e2e/ma_dev_v2/ma/bin/workspace/playwright/e2e/e2e-view-switch-entries.js:54:10)
    at /data/AICode/e2e/ma_dev_v2/ma/bin/workspace/playwright/e2e/e2e-view-switch-entries.js:231:19