diff --git a/extensions/msteams/src/monitor-handler.test-helpers.ts b/extensions/msteams/src/monitor-handler.test-helpers.ts index df488cac8fc..85c52111cfa 100644 --- a/extensions/msteams/src/monitor-handler.test-helpers.ts +++ b/extensions/msteams/src/monitor-handler.test-helpers.ts @@ -39,6 +39,8 @@ export function installMSTeamsTestRuntime(options: MSTeamsTestRuntimeOptions = { }, text: { hasControlCommand: () => false, + resolveChunkMode: () => "length", + resolveMarkdownTableMode: () => "code", ...(options.resolveTextChunkLimit ? { resolveTextChunkLimit: options.resolveTextChunkLimit } : {}), @@ -53,8 +55,14 @@ export function installMSTeamsTestRuntime(options: MSTeamsTestRuntimeOptions = { })), }, reply: { + createReplyDispatcherWithTyping: () => ({ + dispatcher: {}, + replyOptions: {}, + markDispatchIdle: vi.fn(), + }), formatAgentEnvelope: ({ body }: { body: string }) => body, finalizeInboundContext: >(ctx: T) => ctx, + resolveHumanDelayConfig: () => undefined, }, session: { recordInboundSession: options.recordInboundSession ?? vi.fn(async () => undefined), diff --git a/extensions/msteams/src/monitor-handler/message-handler.mock-support.ts b/extensions/msteams/src/monitor-handler/message-handler-mock-support.test-support.ts similarity index 100% rename from extensions/msteams/src/monitor-handler/message-handler.mock-support.ts rename to extensions/msteams/src/monitor-handler/message-handler-mock-support.test-support.ts diff --git a/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts b/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts index e60d72691cb..3dec1b4eb50 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts @@ -2,8 +2,8 @@ import { describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../runtime-api.js"; import type { GraphThreadMessage } from "../graph-thread.js"; import { _resetThreadParentContextCachesForTest } from "../thread-parent-context.js"; +import { getRuntimeApiMockState } from "./message-handler-mock-support.test-support.js"; import { createMSTeamsMessageHandler } from "./message-handler.js"; -import { getRuntimeApiMockState } from "./message-handler.mock-support.js"; import { createMessageHandlerDeps } from "./message-handler.test-support.js"; type HandlerInput = Parameters>[0]; diff --git a/extensions/msteams/src/monitor-handler/message-handler.thread-parent.test.ts b/extensions/msteams/src/monitor-handler/message-handler.thread-parent.test.ts index bbc418b8c18..2a426233ac4 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.thread-parent.test.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.thread-parent.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../runtime-api.js"; import { _resetThreadParentContextCachesForTest } from "../thread-parent-context.js"; +import { getRuntimeApiMockState } from "./message-handler-mock-support.test-support.js"; import { createMSTeamsMessageHandler } from "./message-handler.js"; -import { getRuntimeApiMockState } from "./message-handler.mock-support.js"; import { buildChannelActivity, channelConversationId, diff --git a/extensions/msteams/src/monitor-handler/message-handler.thread-session.test.ts b/extensions/msteams/src/monitor-handler/message-handler.thread-session.test.ts index 63816268330..80cd8bfb50f 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.thread-session.test.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.thread-session.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from "vitest"; import type { OpenClawConfig } from "../../runtime-api.js"; -import "./message-handler.mock-support.js"; +import "./message-handler-mock-support.test-support.js"; import { createMSTeamsMessageHandler } from "./message-handler.js"; import { buildChannelActivity, diff --git a/test/helpers/infra/heartbeat-runner-channel-plugins.ts b/test/helpers/infra/heartbeat-runner-channel-plugins.ts index 6304056c58e..f9a36dc2a56 100644 --- a/test/helpers/infra/heartbeat-runner-channel-plugins.ts +++ b/test/helpers/infra/heartbeat-runner-channel-plugins.ts @@ -1,5 +1,6 @@ import type { ChannelId, + ChannelMessagingAdapter, ChannelOutboundAdapter, ChannelPlugin, } from "../../../src/channels/plugins/types.js"; @@ -52,6 +53,7 @@ function createHeartbeatChannelPlugin(params: { label: string; docsPath: string; heartbeat?: ChannelPlugin["heartbeat"]; + messaging?: ChannelMessagingAdapter; }): ChannelPlugin { return { ...createOutboundTestPlugin({ @@ -59,6 +61,7 @@ function createHeartbeatChannelPlugin(params: { label: params.label, docsPath: params.docsPath, outbound: createHeartbeatOutboundAdapter(params.id), + ...(params.messaging ? { messaging: params.messaging } : {}), }), ...(params.heartbeat ? { heartbeat: params.heartbeat } : {}), }; @@ -74,6 +77,9 @@ export const heartbeatRunnerTelegramPlugin = createHeartbeatChannelPlugin({ id: "telegram", label: "Telegram", docsPath: "/channels/telegram", + messaging: { + preserveHeartbeatThreadIdForGroupRoute: true, + }, }); export const heartbeatRunnerWhatsAppPlugin = createHeartbeatChannelPlugin({