# 测试 运行 `pnpm run check` 构建项目并依次执行两组测试,也可在构建后单独运行下列命令。 | 命令 | 范围 | | --- | --- | | `pnpm run test:behavior` | 严格 TypeScript 测试编译,端点策略、状态规则、请求输入、凭据过滤、提醒规则和 React 组件交互 | | `pnpm run test:protocol` | 连接库与五个工具的隔离 HTTP、WS、JSON-RPC 和 MCP 行为 | ## 独立行为测试 `behavior/` 直接调用生产代码的领域入口。 - `policy.test.mjs`:端点识别、逐项授权、包裹调用拒绝、过滤和分页;HTTP 使用离线契约查询。 - `control-state.test.mjs`:核心选择、换绑撤权、发现目录更新、重载恢复、配置校验和过期配置拒绝。 - `reconnection.test.ts`:PID 失效后的唯一候选恢复、多实例选择、原绑定保留和换绑撤权。 - `kernel-directory.test.ts`:多核心与会话选择、停用和空目录、凭据服务离线时的本地读取、无网络与配置写入、公开字段和凭据过滤、严格空参数、取消和卸载;通过生产 `KernelManager` 与工具执行入口验证。 - `management-input.test.mjs`:内容类型、字节流 JSON、大小限制和查询校验。 - `secrets.test.mjs`:跨核心凭据与编码形式遮罩、敏感词业务字段的类型保留、MCP 媒体位置与业务对象区分。 - `reminders.test.mjs`:原生 callout 解析、v1/v2/v3 声明、来源身份、范围和通知刷新行为。 - `client-ui.test.mjs`:真实 React 静态渲染;活动经过凭据过滤、持久化解析、返回投影和 JSON 传输后保留审批,旧版错误脱敏记录可读且注明明细丢失。 - `client-navigation.test.mjs`:真实 React 与 jsdom 验证卡片点击、参数展开和定位反馈;通过领域参数注入历史加载,验证补载历史、PTC 根与子调用、原生展开事件、换会话和卸载取消。连接页用插件自有网络端口验证暂停核心跳过自动检查、人工一次点击只发一次检查、访问成功仍保留提醒暂停及限流文案。jsdom 无布局引擎,几何读数单独提供,实际滚动由安装后的软件验收。 - `client-layout.test.mjs`:首次加载本机实例、旧 PID 失效后的选择与绑定刷新;暂停核心跳过自动发现,人工刷新只列实例;高级选项与工具箱默认折叠,活动成功和失败分区显示。 - `gateway-publication.test.mjs`:697 条 HTTP 契约按用途合并为 663 个工具、路径末段命名与父路径分组、重名区分、同用途优先 POST、不同处理函数保留、请求映射、常规 HTTP 成功只返回 data、HTTP 与内核失败状态、特殊响应及结算警告保留、MCP 原始 schema、同名跨核心区分、增删改同步、核心改名、默认关闭组、撤回顺序、旧工具失效与管理组件展示。 ## 隔离协议和工具行为 根目录测试使用本地隔离的 HTTP、WS、JSON-RPC 与 MCP 协议服务,检验连接库与基础工具的数据行为。 - `gateway.test.mjs`:从 `KernelManager` 的存储和凭据端口注入隔离数据,验证 MCP 发现保存完整 schema、全量发布、端点拒绝不派发、实际 HTTP/MCP 往返、multipart 文件内容、两级 MCP 授权、活动的工具名与 callId,以及网关重连和核心删除。 - `manager-recovery.test.ts`:管理器持久保存重新发现的 PID、多实例选择、失败提交隔离及访问检查。 - `remote-recovery.test.ts`:代理路径前缀、GET/HEAD 有界重试、总超时、取消、长 Retry-After、429 不重试、写入与流式响应不重放。短超时断言先完成连接预热;取消时序以服务收到请求为起点。 - `websocket-recovery.test.ts`:网络断线、心跳与恢复、握手 401/403/429、标准 unauthenticated 关闭及原样无效关闭帧的协议分类。 - `access-pause.test.ts`:HTTP 拒绝停止存活 WS 和后续快照、跨重订阅暂停、核心间隔离、实际连接变更恢复、旧配置迟到响应隔离、WS 限流停止重连、Retry-After 日期、未配置 token 的访问语义;另覆盖配置写入失败的凭据补偿、空凭据条目恢复、同值重试,以及提交后通知失败不撤回已保存凭据。 凭据测试只使用测试内合成值;内存存储和凭据端口属于插件自己的依赖接口。 ## 真实 Host 与思源验收 Host 集成检查验证服务契约及注册接口,运行版思源验收验证实际核心的版本、访问认证与连接行为,分别记录版本、步骤和结果。隔离协议测试提供故障路径覆盖;运行验收提供实际软件兼容性证据。 v0.2.1 已在真实桌面应用中验证连接管理、端点配置、读取和追加项目笔记,以及将宿主审批从 never 切换为 ask 后的批准派发。卡片打开侧栏与历史定位的实际滚动由安装后的界面验收;组件回归使用真实 React 静态渲染及 jsdom 点击事件。工具、凭据、存储和插槽接入不使用手写宿主上下文替身。