diff --git a/extensions/bluebubbles/src/test-harness.ts b/extensions/bluebubbles/src/test-harness.ts index a9e3bcb5375..627b04197ba 100644 --- a/extensions/bluebubbles/src/test-harness.ts +++ b/extensions/bluebubbles/src/test-harness.ts @@ -1,3 +1,4 @@ +import type { Mock } from "vitest"; import { afterEach, beforeEach, vi } from "vitest"; export function resolveBlueBubblesAccountFromConfig(params: { @@ -19,7 +20,11 @@ export function createBlueBubblesAccountsMockModule() { }; } -export function createBlueBubblesProbeMockModule() { +type BlueBubblesProbeMockModule = { + getCachedBlueBubblesPrivateApiStatus: Mock<() => boolean | null>; +}; + +export function createBlueBubblesProbeMockModule(): BlueBubblesProbeMockModule { return { getCachedBlueBubblesPrivateApiStatus: vi.fn().mockReturnValue(null), }; diff --git a/src/agents/models-config.e2e-harness.ts b/src/agents/models-config.e2e-harness.ts index eb6e8cfe38d..a35e9108990 100644 --- a/src/agents/models-config.e2e-harness.ts +++ b/src/agents/models-config.e2e-harness.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, vi } from "vitest"; import type { OpenClawConfig } from "../config/config.js"; +import type { MockFn } from "../test-utils/vitest-mock-fn.js"; import { withTempHome as withTempHomeBase } from "../../test/helpers/temp-home.js"; export async function withModelsTempHome(fn: (home: string) => Promise): Promise { @@ -57,7 +58,7 @@ export async function withUnsetCopilotTokenEnv(fn: () => Promise): Promise }); } -export function mockCopilotTokenExchangeSuccess() { +export function mockCopilotTokenExchangeSuccess(): MockFn { const fetchMock = vi.fn().mockResolvedValue({ ok: true, status: 200, diff --git a/src/agents/openclaw-tools.subagents.test-harness.ts b/src/agents/openclaw-tools.subagents.test-harness.ts index e996e88d237..44b6ea79118 100644 --- a/src/agents/openclaw-tools.subagents.test-harness.ts +++ b/src/agents/openclaw-tools.subagents.test-harness.ts @@ -1,8 +1,9 @@ import { vi } from "vitest"; +import type { MockFn } from "../test-utils/vitest-mock-fn.js"; export type LoadedConfig = ReturnType<(typeof import("../config/config.js"))["loadConfig"]>; -export const callGatewayMock = vi.fn(); +export const callGatewayMock: MockFn = vi.fn(); const defaultConfig: LoadedConfig = { session: { diff --git a/src/commands/test-runtime-config-helpers.ts b/src/commands/test-runtime-config-helpers.ts index be5c64e1b81..4890ea999d7 100644 --- a/src/commands/test-runtime-config-helpers.ts +++ b/src/commands/test-runtime-config-helpers.ts @@ -1,4 +1,5 @@ import { vi } from "vitest"; +import type { MockFn } from "../test-utils/vitest-mock-fn.js"; export const baseConfigSnapshot = { path: "/tmp/openclaw.json", @@ -11,7 +12,13 @@ export const baseConfigSnapshot = { legacyIssues: [], }; -export function createTestRuntime() { +export type TestRuntime = { + log: MockFn; + error: MockFn; + exit: MockFn; +}; + +export function createTestRuntime(): TestRuntime { return { log: vi.fn(), error: vi.fn(), diff --git a/src/cron/service.test-harness.ts b/src/cron/service.test-harness.ts index 211620148b9..05db703d6cb 100644 --- a/src/cron/service.test-harness.ts +++ b/src/cron/service.test-harness.ts @@ -91,7 +91,12 @@ export function createFinishedBarrier() { export function createStartedCronServiceWithFinishedBarrier(params: { storePath: string; logger: ReturnType; -}) { +}): { + cron: CronService; + enqueueSystemEvent: MockFn; + requestHeartbeatNow: MockFn; + finished: ReturnType; +} { const enqueueSystemEvent = vi.fn(); const requestHeartbeatNow = vi.fn(); const finished = createFinishedBarrier(); diff --git a/src/discord/monitor.tool-result.test-harness.ts b/src/discord/monitor.tool-result.test-harness.ts index 01b2b5e9635..bdea448526b 100644 --- a/src/discord/monitor.tool-result.test-harness.ts +++ b/src/discord/monitor.tool-result.test-harness.ts @@ -1,11 +1,12 @@ import { vi } from "vitest"; +import type { MockFn } from "../test-utils/vitest-mock-fn.js"; -export const sendMock = vi.fn(); -export const reactMock = vi.fn(); -export const updateLastRouteMock = vi.fn(); -export const dispatchMock = vi.fn(); -export const readAllowFromStoreMock = vi.fn(); -export const upsertPairingRequestMock = vi.fn(); +export const sendMock: MockFn = vi.fn(); +export const reactMock: MockFn = vi.fn(); +export const updateLastRouteMock: MockFn = vi.fn(); +export const dispatchMock: MockFn = vi.fn(); +export const readAllowFromStoreMock: MockFn = vi.fn(); +export const upsertPairingRequestMock: MockFn = vi.fn(); vi.mock("./send.js", () => ({ sendMessageDiscord: (...args: unknown[]) => sendMock(...args),