oclaw/tests/test_weixin_official_scripts.py
oliver 853dc1812f 收敛微信 sidecar 到官方单链路并同步文档与回归测试。
移除 weixin 安装与启动脚本中的 legacy/localSource 分支,只保留 official_runner 路径,统一开源安装命令并更新 RUNBOOK/Quickstart/README,确保脚本行为与测试预期一致。

Made-with: Cursor
2026-04-29 01:10:25 +08:00

51 lines
1.8 KiB
Python

from __future__ import annotations
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
def _read(rel: str) -> str:
return (REPO_ROOT / rel).read_text(encoding="utf-8")
def test_weixin_start_official_only_runner() -> None:
text = _read("runtime/operations/scripts/weixin_start.ps1")
assert "mode=official" in text
assert 'official_runner.ts' in text
assert "AIA_WEIXIN_RUNNER_MODE" not in text
def test_weixin_status_and_stop_track_official_runner() -> None:
status_text = _read("runtime/operations/scripts/weixin_status.ps1")
stop_text = _read("runtime/operations/scripts/weixin_stop.ps1")
assert "official_runner.ts" in status_text
assert "official_runner.ts" in stop_text
def test_weixin_install_copies_official_runner() -> None:
text = _read("runtime/operations/scripts/weixin_install.ps1")
assert "Sync-WeixinBridgeRunners" in text
assert '"official_runner.ts"' in text
assert "Ensure-OfficialPluginRuntimeDeps" in text
assert "LocalSourcePath" not in text
def test_weixin_start_ensures_plugin_runtime_deps() -> None:
text = _read("runtime/operations/scripts/weixin_start.ps1")
assert "Ensure-OfficialPluginRuntimeDeps" in text
assert "npm.cmd install openclaw@latest --no-save" in text
def test_official_runner_prefers_direct_inbound_before_other_fallbacks() -> None:
text = _read("runtime/operations/weixin_bridge/official_runner.ts")
assert "const native = await postNativeReply" in text
assert "falling back to direct /inbound bridge" not in text
assert "legacy local ilink bridge" not in text
def test_official_runner_logs_active_bridge_path() -> None:
text = _read("runtime/operations/weixin_bridge/official_runner.ts")
assert "official runner started account=" in text
assert "native reply failed; no fallback enabled" in text