test(team-mode): isolate module mocks
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user