mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 16:10:49 +00:00
fix(installer): warn about duplicate global installs
This commit is contained in:
@@ -240,3 +240,47 @@ describe("install.sh macOS Homebrew Node behavior", () => {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe("install.sh duplicate OpenClaw install detection", () => {
|
||||
it("warns with concrete package paths and versions for duplicate npm roots", () => {
|
||||
const result = runInstallShell(`
|
||||
set -euo pipefail
|
||||
source "${SCRIPT_PATH}"
|
||||
root="$(mktemp -d)"
|
||||
trap 'rm -rf "$root"' EXIT
|
||||
mkdir -p "$root/brew/openclaw" "$root/fnm/openclaw"
|
||||
printf '{"version":"2026.3.7"}\\n' > "$root/brew/openclaw/package.json"
|
||||
printf '{"version":"2026.3.1"}\\n' > "$root/fnm/openclaw/package.json"
|
||||
collect_openclaw_npm_root_candidates() { printf '%s\\n' "$root/brew" "$root/fnm"; }
|
||||
OPENCLAW_BIN="$root/fnm/.bin/openclaw"
|
||||
ui_warn() { echo "WARN: $*"; }
|
||||
warn_duplicate_openclaw_global_installs
|
||||
`);
|
||||
|
||||
expect(result.status).toBe(0);
|
||||
expect(result.stdout).toContain("Multiple OpenClaw global installs detected");
|
||||
expect(result.stdout).toContain("2026.3.7");
|
||||
expect(result.stdout).toContain("2026.3.1");
|
||||
expect(result.stdout).toContain("/brew/openclaw");
|
||||
expect(result.stdout).toContain("/fnm/openclaw");
|
||||
expect(result.stdout).toContain("Active openclaw:");
|
||||
expect(result.stdout).toContain("npm uninstall -g openclaw");
|
||||
});
|
||||
|
||||
it("stays quiet when only one OpenClaw npm root exists", () => {
|
||||
const result = runInstallShell(`
|
||||
set -euo pipefail
|
||||
source "${SCRIPT_PATH}"
|
||||
root="$(mktemp -d)"
|
||||
trap 'rm -rf "$root"' EXIT
|
||||
mkdir -p "$root/only/openclaw"
|
||||
printf '{"version":"2026.3.7"}\\n' > "$root/only/openclaw/package.json"
|
||||
collect_openclaw_npm_root_candidates() { printf '%s\\n' "$root/only"; }
|
||||
ui_warn() { echo "WARN: $*"; }
|
||||
warn_duplicate_openclaw_global_installs
|
||||
`);
|
||||
|
||||
expect(result.status).toBe(0);
|
||||
expect(result.stdout).not.toContain("Multiple OpenClaw global installs detected");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user