Files
openclaw/test/scripts/merge-head-diff-base.test.ts
Peter Steinberger 7bf80dc2c6 chore(tooling): enforce formatting and refresh TypeScript checks (#104239)
* chore(tooling): enforce current formatter and refresh checks

* chore(tooling): keep release changelog formatter-owned

* chore(tooling): retain compatible Node type surface

* ci: enforce formatting for docs-only changes

* ci: isolate docs formatter check

* chore(tooling): apply updated lint and format rules

* chore(tooling): satisfy updated switch lint

* style(ui): apply Linux formatter layout

* test(doctor): match quiet local audio contribution

* test(doctor): assert quiet output only

* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00

25 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { parseArgs, resolveMergeHeadDiffBase } from "../../scripts/lib/merge-head-diff-base.mjs";
describe("merge-head-diff-base", () => {
it("parses explicit refs", () => {
expect(parseArgs(["--base", "origin/main", "--head", "HEAD"])).toEqual({
base: "origin/main",
head: "HEAD",
preferFirstParent: false,
});
});
it("rejects missing refs", () => {
expect(() => parseArgs(["--base", "--head", "HEAD"])).toThrow("--base requires a value");
expect(() => parseArgs(["--base", "-h", "--head", "HEAD"])).toThrow("--base requires a value");
expect(() => parseArgs(["--head"])).toThrow("--head requires a value");
expect(() => parseArgs(["--head", "-h"])).toThrow("--head requires a value");
expect(() => parseArgs(["--base", ""])).toThrow("--base requires a value");
});
it("keeps empty base resolution as the no-op programmatic default", () => {
expect(resolveMergeHeadDiffBase({ base: "", preferFirstParent: true })).toBe("");
});
});