op-packages/luci-app-openclaw/tests/test_openclaw_paths.lua
github-actions[bot] ccfd18b795 🍉 Sync 2026-05-16 08:37:13
2026-05-16 08:37:13 +08:00

33 lines
1.3 KiB
Lua

package.path = "./luasrc/?.lua;./luasrc/?/?.lua;" .. package.path
local paths = require "openclaw.paths"
local function eq(actual, expected, label)
if actual ~= expected then
error(string.format("%s: expected %q, got %q", label, tostring(expected), tostring(actual)), 2)
end
end
local function check(input, expected_base, expected_root)
local derived = paths.derive_paths(input)
eq(derived.install_path, expected_base, "install_path")
eq(derived.oc_root, expected_root, "oc_root")
eq(derived.node_base, expected_root .. "/node", "node_base")
eq(derived.oc_global, expected_root .. "/global", "oc_global")
eq(derived.oc_data, expected_root .. "/data", "oc_data")
end
check(nil, "/opt", "/opt/openclaw")
check("", "/opt", "/opt/openclaw")
check("/mnt/data", "/mnt/data", "/mnt/data/openclaw")
check("/mnt/data/openclaw", "/mnt/data", "/mnt/data/openclaw")
check("/mnt/data/", "/mnt/data", "/mnt/data/openclaw")
eq(paths.normalize_install_path("relative/path"), nil, "relative path rejected")
eq(paths.normalize_install_path("/mnt/data bad"), nil, "space rejected")
eq(paths.normalize_install_path("/"), nil, "root rejected")
eq(paths.is_safe_openclaw_root("/mnt/data/openclaw"), true, "safe root")
eq(paths.is_safe_openclaw_root("/mnt/data"), false, "unsafe root")
print("ok")