test(team-mode): reset worktree git runner
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user