test(team-mode): reset worktree git runner

This commit is contained in:
YeonGyu-Kim
2026-05-30 20:25:13 +09:00
parent 92c2803826
commit eff83ab5f1
2 changed files with 16 additions and 9 deletions
@@ -1,12 +1,18 @@
/// <reference types="bun-types" /> /// <reference types="bun-types" />
import { afterAll, beforeAll, describe, expect, mock, test } from "bun:test" import { afterAll, afterEach, beforeAll, describe, expect, mock, test } from "bun:test"
import { randomUUID } from "node:crypto" import { randomUUID } from "node:crypto"
import fs from "node:fs/promises" import fs from "node:fs/promises"
import { tmpdir } from "node:os" import { tmpdir } from "node:os"
import path from "node:path" import path from "node:path"
import { GitUnavailableError, createWorktree, setGitCommandRunnerForTests, validateWorktreeSpec } from "./manager" import {
GitUnavailableError,
createWorktree,
resetGitCommandRunnerForTests,
setGitCommandRunnerForTests,
validateWorktreeSpec,
} from "./manager"
import { removeWorktree } from "./cleanup" import { removeWorktree } from "./cleanup"
const temporaryDirectories: string[] = [] const temporaryDirectories: string[] = []
@@ -34,6 +40,10 @@ afterAll(async () => {
mock.restore() mock.restore()
}) })
afterEach(() => {
resetGitCommandRunnerForTests()
})
describe("team-worktree manager", () => { describe("team-worktree manager", () => {
test("given tmp git repo when createWorktree then registers detached worktree", async () => { test("given tmp git repo when createWorktree then registers detached worktree", async () => {
// given // given
@@ -81,13 +91,6 @@ describe("team-worktree manager", () => {
// then // then
await expect(create).rejects.toBeInstanceOf(GitUnavailableError) await expect(create).rejects.toBeInstanceOf(GitUnavailableError)
setGitCommandRunnerForTests(async (args) => {
if (args[0] === "--version") {
return { code: 0, stderr: "" }
}
return { code: 0, stderr: "" }
})
}) })
test("given created worktree when removeWorktree then directory disappears", async () => { test("given created worktree when removeWorktree then directory disappears", async () => {
@@ -28,6 +28,10 @@ export function setGitCommandRunnerForTests(runner: typeof runGit): void {
gitCommandRunner = runner gitCommandRunner = runner
} }
export function resetGitCommandRunnerForTests(): void {
gitCommandRunner = runGit
}
export async function isGitAvailable(): Promise<boolean> { export async function isGitAvailable(): Promise<boolean> {
const result = await gitCommandRunner(["--version"]) const result = await gitCommandRunner(["--version"])
return result.code === 0 return result.code === 0