mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 19:54:46 +00:00
fix(installer): honor git install versions
This commit is contained in:
59
test/scripts/install-cli.test.ts
Normal file
59
test/scripts/install-cli.test.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { spawnSync } from "node:child_process";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const SCRIPT_PATH = "scripts/install-cli.sh";
|
||||
|
||||
function runInstallCliShell(script: string, env: NodeJS.ProcessEnv = {}) {
|
||||
return spawnSync("bash", ["-c", script], {
|
||||
encoding: "utf8",
|
||||
env: {
|
||||
...process.env,
|
||||
OPENCLAW_INSTALL_CLI_SH_NO_RUN: "1",
|
||||
...env,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
describe("install-cli.sh", () => {
|
||||
const script = readFileSync(SCRIPT_PATH, "utf8");
|
||||
|
||||
it("resolves requested git install versions to checkout refs", () => {
|
||||
const result = runInstallCliShell(`
|
||||
set -euo pipefail
|
||||
source "${SCRIPT_PATH}"
|
||||
npm_bin() { echo npm; }
|
||||
npm() {
|
||||
if [[ "$1" == "view" && "$2" == "openclaw" && "$3" == "dist-tags.beta" ]]; then
|
||||
printf '2026.5.12-beta.3\\n'
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
OPENCLAW_VERSION=v2026.5.12-beta.3
|
||||
printf 'tag=%s\\n' "$(resolve_git_openclaw_ref)"
|
||||
OPENCLAW_VERSION=2026.5.12-beta.3
|
||||
printf 'semver=%s\\n' "$(resolve_git_openclaw_ref)"
|
||||
OPENCLAW_VERSION=beta
|
||||
printf 'beta=%s\\n' "$(resolve_git_openclaw_ref)"
|
||||
OPENCLAW_VERSION=main
|
||||
printf 'main=%s\\n' "$(resolve_git_openclaw_ref)"
|
||||
`);
|
||||
|
||||
expect(result.status).toBe(0);
|
||||
expect(result.stdout).toContain("tag=v2026.5.12-beta.3");
|
||||
expect(result.stdout).toContain("semver=v2026.5.12-beta.3");
|
||||
expect(result.stdout).toContain("beta=v2026.5.12-beta.3");
|
||||
expect(result.stdout).toContain("main=main");
|
||||
});
|
||||
|
||||
it("uses frozen lockfile installs for git installs", () => {
|
||||
expect(script).toContain('run_pnpm -C "$repo_dir" install --frozen-lockfile');
|
||||
});
|
||||
|
||||
it("aligns pnpm to the checked-out repo packageManager before installing", () => {
|
||||
expect(script).toContain("activate_repo_pnpm_version()");
|
||||
expect(script).toContain('"$corepack_cmd" prepare "pnpm@${version}" --activate');
|
||||
expect(script).toContain('activate_repo_pnpm_version "$repo_dir"');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user