Files
Kilo-Org_kilocode/packages/opencode/test/kilocode/commit-message-windows.test.ts
T
Marius 79d2567e6c fix(cli): hide commit-message git windows on Windows (#7692)
Prevent cmd.exe flashes when commit message generation shells out to git on Windows and add a regression test for the subprocess flags.
2026-03-26 13:59:04 +01:00

39 lines
1.2 KiB
TypeScript

import { describe, expect, spyOn, test } from "bun:test"
import { getGitContext } from "../../src/commit-message/git-context"
describe("commit-message git context", () => {
test("hides Windows console windows for git subprocesses", async () => {
const out = new Map([
["branch --show-current", "main"],
["log --oneline -5", "abc1234 init"],
["diff --name-status --cached", "M\tsrc/index.ts"],
["diff --cached -- src/index.ts", "+console.log('hi')"],
])
const spy = spyOn(Bun, "spawnSync").mockImplementation(((cmd: unknown, opts: unknown) => {
const key = Array.isArray(cmd) ? cmd.slice(1).join(" ") : ""
return {
stdout: Buffer.from(out.get(key) ?? ""),
stderr: Buffer.alloc(0),
} as never
}) as unknown as typeof Bun.spawnSync)
try {
await getGitContext("/repo")
expect(spy).toHaveBeenCalledTimes(4)
for (const call of spy.mock.calls) {
expect(call[0]).toEqual(expect.arrayContaining(["git"]))
expect(call[1]).toMatchObject({
cwd: "/repo",
stdout: "pipe",
stderr: "pipe",
windowsHide: true,
})
}
} finally {
spy.mockRestore()
}
})
})