Files
HomeAgent/internal/plugins
JianFeeeee 683f0126af test(webui): 内核按钮必须真的出现在**渲染后**的页面里
## 为什么需要这组判据

dashboard.html 与 dashboard.js 都是 `//go:embed` 进二进制的,再由 init
组装成 dashboardHTML(替换 {{DASHBOARD_JS}} 等占位符)。这里有两个
**各自都可能坏掉**的环节:

 1. 按钮写进了 dashboard.html,但占位符没被替换 / 替换错位
    ⇒ 页面里看不到按钮
 2. JS 函数写进了 dashboard.js,但被包在 IIFE 里(不在全局)
    ⇒ onclick="kernelRestart()" 点了报 "kernelRestart is not defined"

只查源码里有没有那个字符串,这两种情况都照不出来。

## 判据(3 条,都查组装后的 dashboardHTML / embed 源)

 · TestKernelButtonsRenderedInPage:渲染后的页面含两个按钮的 id 与 onclick
 · TestKernelFunctionsAreGlobal:4 个函数必须是**顶层**定义
   (浏览器 onclick 走全局查找,jsdom 的行为测试做不到这点)
 · TestKernelButtonsInNavFooter:两个按钮必须落在 nav-footer 内
   —— 它们作用于整个服务,切到任何标签页都该能点到

实测:渲染页面 408057 字节,六项断言全在。

顺带把 dashboard.js 的格式化差异一并提交(-w 对比为空的纯格式调整)。
2026-10-17 21:26:12 +08:00
..