diff --git a/src/features/team-mode/integration.test.ts b/src/features/team-mode/integration.test.ts index 0f11cff54..79d08e368 100644 --- a/src/features/team-mode/integration.test.ts +++ b/src/features/team-mode/integration.test.ts @@ -1,6 +1,6 @@ /// -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 } } +afterAll(() => { + mock.restore() +}) + function createConfig(baseDir: string, overrides: Partial = {}): 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 }, diff --git a/src/features/team-mode/team-mailbox/inbox.test.ts b/src/features/team-mode/team-mailbox/inbox.test.ts index 3afed0f4a..caa55e2e4 100644 --- a/src/features/team-mode/team-mailbox/inbox.test.ts +++ b/src/features/team-mode/team-mailbox/inbox.test.ts @@ -1,6 +1,6 @@ /// -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 { return await mkdtemp(path.join(tmpdir(), "team-mailbox-inbox-")) } diff --git a/src/features/team-mode/team-mailbox/poll.test.ts b/src/features/team-mode/team-mailbox/poll.test.ts index a92b926d9..1f57f18ae 100644 --- a/src/features/team-mode/team-mailbox/poll.test.ts +++ b/src/features/team-mode/team-mailbox/poll.test.ts @@ -1,6 +1,6 @@ /// -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 }) } diff --git a/src/features/team-mode/team-registry/paths.test.ts b/src/features/team-mode/team-registry/paths.test.ts index 2cf1cc575..faf90b946 100644 --- a/src/features/team-mode/team-registry/paths.test.ts +++ b/src/features/team-mode/team-registry/paths.test.ts @@ -1,6 +1,6 @@ /// -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 { return await mkdtemp(path.join(tmpdir(), "team-mode-paths-")) } diff --git a/src/features/team-mode/team-runtime/create.test.ts b/src/features/team-mode/team-runtime/create.test.ts index 99db1c41b..3f3438648 100644 --- a/src/features/team-mode/team-runtime/create.test.ts +++ b/src/features/team-mode/team-runtime/create.test.ts @@ -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 }))) }) diff --git a/src/features/team-mode/team-runtime/resolve-member.test.ts b/src/features/team-mode/team-runtime/resolve-member.test.ts index f991d9435..6976d459f 100644 --- a/src/features/team-mode/team-runtime/resolve-member.test.ts +++ b/src/features/team-mode/team-runtime/resolve-member.test.ts @@ -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 {