test(team-mode): isolate module mocks

This commit is contained in:
YeonGyu-Kim
2026-05-30 15:35:09 +09:00
parent 01a0d90c6a
commit e5e942da24
6 changed files with 30 additions and 10 deletions
+8 -5
View File
@@ -1,6 +1,6 @@
/// <reference types="bun-types" />
import { afterEach, describe, expect, mock, test } from "bun:test"
import { afterAll, afterEach, describe, expect, mock, test } from "bun:test"
import { randomUUID } from "node:crypto"
import { mkdir, rm, stat } from "node:fs/promises"
import { tmpdir } from "node:os"
@@ -49,6 +49,10 @@ const { loadRuntimeState, saveRuntimeState } = await import("./team-state-store/
const temporaryDirectories: string[] = []
type MockClient = ExecutorContext["client"] & { session: { get: ReturnType<typeof mock> } }
afterAll(() => {
mock.restore()
})
function createConfig(baseDir: string, overrides: Partial<TeamModeConfig> = {}): TeamModeConfig {
return TeamModeConfigSchema.parse({ enabled: true, base_dir: baseDir, max_wall_clock_minutes: 1, ...overrides })
}
@@ -212,13 +216,12 @@ describe("team-mode integration", () => {
})
return undefined
})
const recordingClient = {
const ctx = createContext(baseDir, manager, new Set(["ses_lead"]))
const recordingClient: LiveDeliveryClient = {
session: {
get: mock(async ({ path: { id } }: { path: { id: string } }) => ({ data: { id } })),
promptAsync: promptAsyncSpy,
},
} as ExecutorContext["client"] & LiveDeliveryClient
const ctx = { client: recordingClient, manager, directory: baseDir }
}
const runtime = await createTeamRun(createSpec("msg-team", "lead", [
{ kind: "subagent_type", name: "lead", subagent_type: "sisyphus", backendType: "in-process", isActive: true },
@@ -1,6 +1,6 @@
/// <reference types="bun-types" />
import { describe, expect, mock, test } from "bun:test"
import { afterAll, describe, expect, mock, test } from "bun:test"
import { mkdir, mkdtemp, writeFile } from "node:fs/promises"
import { randomUUID } from "node:crypto"
import { tmpdir } from "node:os"
@@ -18,6 +18,10 @@ const { listUnreadMessages } = await import("./inbox")
const { TeamModeConfigSchema } = await import("../../../config/schema/team-mode")
const { getInboxDir, resolveBaseDir } = await import("../team-registry/paths")
afterAll(() => {
mock.restore()
})
async function createBaseDirectory(): Promise<string> {
return await mkdtemp(path.join(tmpdir(), "team-mailbox-inbox-"))
}
@@ -1,6 +1,6 @@
/// <reference types="bun-types" />
import { afterEach, describe, expect, mock, test } from "bun:test"
import { afterAll, afterEach, describe, expect, mock, test } from "bun:test"
import { randomUUID } from "node:crypto"
import { readdir } from "node:fs/promises"
import { tmpdir } from "node:os"
@@ -22,6 +22,10 @@ mock.module("./ack", () => ({
const { pollAndBuildInjection } = await import("./poll")
const { getInboxDir, resolveBaseDir } = await import("../team-registry/paths")
afterAll(() => {
mock.restore()
})
function createConfig(baseDir: string) {
return TeamModeConfigSchema.parse({ base_dir: baseDir })
}
@@ -1,6 +1,6 @@
/// <reference types="bun-types" />
import { afterEach, describe, expect, mock, test } from "bun:test"
import { afterAll, afterEach, describe, expect, mock, test } from "bun:test"
import { mkdtemp, mkdir, rm, stat, writeFile } from "node:fs/promises"
import { homedir, tmpdir } from "node:os"
import path from "node:path"
@@ -18,6 +18,10 @@ mock.module("../../../shared/logger", () => ({
const { discoverTeamSpecs, ensureBaseDirs, resolveBaseDir } = await import("./paths")
afterAll(() => {
mock.restore()
})
async function createTemporaryRoot(): Promise<string> {
return await mkdtemp(path.join(tmpdir(), "team-mode-paths-"))
}
@@ -104,6 +104,7 @@ describe("createTeamRun", () => {
})
afterAll(async () => {
mock.restore()
clearSessionTeamRunCleanupRegistry()
await Promise.all(temporaryDirectories.splice(0).map(async (directoryPath) => rm(directoryPath, { recursive: true, force: true })))
})
@@ -1,6 +1,6 @@
import { readFileSync } from "node:fs"
declare const require: (name: string) => any
const { describe, expect, mock, test, beforeEach } = require("bun:test")
const { afterAll, beforeEach, describe, expect, mock, test } = require("bun:test")
import type { ExecutorContext } from "../../../tools/delegate-task/executor-types"
import type { Member } from "../types"
@@ -14,7 +14,11 @@ mock.module("./resolve-member-dependencies", () => ({
buildSystemContent: buildSystemContentMock,
}))
const { resolveMember, TeamMemberResolutionError } = await import("./resolve-member")
const { resolveMember, TeamMemberResolutionError } = await import(`./resolve-member?test=${Date.now()}`)
afterAll(() => {
mock.restore()
})
function createExecutorContext(): ExecutorContext {
return {