Files
openclaw/test/scripts/pr-wrappers.test.ts
2026-06-22 18:44:21 +08:00

56 lines
2.3 KiB
TypeScript

// PR wrapper tests cover maintainer helper command delegation.
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
function readScript(path: string): string {
return readFileSync(path, "utf8");
}
describe("scripts/pr wrappers", () => {
it("keeps the main PR helper usage and command table aligned", () => {
const script = readScript("scripts/pr");
expect(script).toContain("export NO_COLOR=1");
expect(script).toContain("unset COLORTERM");
expect(script).toContain('source "$script_parent_dir/lib/plain-gh.sh"');
expect(script).toContain("OPENCLAW_GH_BIN=");
expect(script).toContain("gh_plain");
expect(script).toContain("scripts/pr review-init <PR>");
expect(script).toContain("scripts/pr prepare-run <PR>");
expect(script).toContain("scripts/pr merge-run <PR>");
expect(script).toContain('review_init "$pr"');
expect(script).toContain('prepare_run "$pr"');
expect(script).toContain('merge_run "$pr"');
});
it("keeps merge wrapper modes delegated to the main PR helper", () => {
const script = readScript("scripts/pr-merge");
expect(script).toContain("scripts/pr-merge <PR>");
expect(script).toContain('exec "$base" merge-verify "$1"');
expect(script).toContain('exec "$base" merge-verify "$pr"');
expect(script).toContain('exec "$base" merge-run "$pr"');
});
it("keeps prepare wrapper modes delegated to the main PR helper", () => {
const script = readScript("scripts/pr-prepare");
expect(script).toContain("scripts/pr-prepare <init|validate-commit|gates|push|run> <PR>");
for (const mode of ["init", "validate-commit", "gates", "push", "run"]) {
expect(script).toContain(`${mode})`);
}
expect(script).toContain('exec "$base" prepare-init "$pr"');
expect(script).toContain('exec "$base" prepare-validate-commit "$pr"');
expect(script).toContain('exec "$base" prepare-gates "$pr"');
expect(script).toContain('exec "$base" prepare-push "$pr"');
expect(script).toContain('exec "$base" prepare-run "$pr"');
});
it("keeps review wrapper delegated to review-init", () => {
const script = readScript("scripts/pr-review");
expect(script).toContain('base="$script_dir/pr"');
expect(script).toContain('exec "$base" review-init "$@"');
});
});