观众 2026 版首页没有 <a href=logout>:退出按钮在 userbar 的 data-uploader-actions JSON 里由脚本渲染,旧登录标志 a[href*="logout"] 永远不命中,健康检查报"未登录"而用户数据正常。 - audiences 定义 loginSuccess 改为 #info_block / usercp.php / logout 任一(0.2.1) - 健康检查判定细分:登录页 / 权限页 / 疑似人机验证 / 找不到登录标志(带选择器), 原始判定写入 last_health.detail,站点概览技术信息展示 - 首页只是找不到登录标志时,以 24 小时内用户数据解析成功为已登录证据(同 MP) - 新 SiteError 类 challenge(cf-mitigated: challenge),不算凭据错误;健康状态 challenge - testkit mock 增加 setHeaderLayout;加观众首页脱敏结构样本的差分测试 Co-Authored-By: Claude Opus 5.5 <[email protected]>
27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { healthLine, healthMessage, healthTechItems } from "./site-fields.ts";
|
|
|
|
describe("健康检测文案(HC-1)", () => {
|
|
it("人机验证单独成类;失败原因一句,原始判定进技术信息", () => {
|
|
const h = {
|
|
ok: false,
|
|
status: "auth_expired",
|
|
latencyMs: 120,
|
|
message: '健康检查:首页里找不到登录标志(选择器 a[href*="logout"])',
|
|
detail: { reason: "marker_missing", selector: 'a[href*="logout"]', path: "index.php", title: "Site :: 首页" },
|
|
};
|
|
expect(healthMessage(h)).toContain("找不到登录标志");
|
|
expect(healthTechItems(h)).toEqual([
|
|
{ label: "判定", value: "页面里找不到登录标志(marker_missing)" },
|
|
{ label: "登录标志选择器", value: 'a[href*="logout"]', mono: true },
|
|
{ label: "检测页面", value: "index.php", mono: true },
|
|
{ label: "页面标题", value: "Site :: 首页" },
|
|
]);
|
|
expect(healthLine({ ok: false, status: "challenge", latencyMs: null, message: null }, null).text).toContain(
|
|
"需要人机验证",
|
|
);
|
|
// 旧记录没有 detail
|
|
expect(healthTechItems({ ok: true, status: "ok", latencyMs: 1, message: null })).toEqual([]);
|
|
});
|
|
});
|