From 527601d7a50a20542187e6ddb6f3992cd5dca52d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 10 Apr 2026 18:14:14 +0100 Subject: [PATCH] fix: align channel owner context test types --- extensions/msteams/src/conversation-store.ts | 2 ++ .../monitor-handler/message-handler.authz.test.ts | 13 ++++++++----- src/agents/agent-command.live-model-switch.test.ts | 1 + src/auto-reply/reply/session-updates.test.ts | 2 ++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/extensions/msteams/src/conversation-store.ts b/extensions/msteams/src/conversation-store.ts index c06cb47e34f..1e928b99f50 100644 --- a/extensions/msteams/src/conversation-store.ts +++ b/extensions/msteams/src/conversation-store.ts @@ -11,6 +11,8 @@ export type StoredConversationReference = { lastSeenAt?: string; /** Activity ID from the last message */ activityId?: string; + /** Channel thread root activity ID for threaded replies. */ + threadId?: string; /** User who sent the message */ user?: { id?: string; name?: string; aadObjectId?: string }; /** Agent/bot that received the message */ 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 9fd250f9f4c..dc1483e99c4 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts @@ -558,12 +558,15 @@ describe("msteams monitor handler authz", () => { } as unknown as Parameters[0]); expect(conversationStore.upsert).toHaveBeenCalledTimes(1); - const storedArg = conversationStore.upsert.mock.calls[0]?.[1] as Record; - expect(storedArg).toBeDefined(); // Top-level tenantId must not be present when no source is available. - expect(storedArg.tenantId).toBeUndefined(); - // aadObjectId still captured from `from.aadObjectId` when present. - expect(storedArg.aadObjectId).toBe("sender-aad"); + expect(conversationStore.upsert).toHaveBeenCalledWith( + "19:no-tenant@thread.tacv2", + expect.not.objectContaining({ tenantId: expect.anything() }), + ); + expect(conversationStore.upsert).toHaveBeenCalledWith( + "19:no-tenant@thread.tacv2", + expect.objectContaining({ aadObjectId: "sender-aad" }), + ); }); it("logs an info drop reason when dmPolicy allowlist rejects a sender", async () => { diff --git a/src/agents/agent-command.live-model-switch.test.ts b/src/agents/agent-command.live-model-switch.test.ts index fc7d5ab5655..c20354dc223 100644 --- a/src/agents/agent-command.live-model-switch.test.ts +++ b/src/agents/agent-command.live-model-switch.test.ts @@ -168,6 +168,7 @@ vi.mock("../logging/subsystem.js", () => ({ vi.mock("../routing/session-key.js", () => ({ normalizeAgentId: (id: string) => id, + normalizeMainKey: (key?: string) => key ?? "main", })); vi.mock("../runtime.js", () => ({ diff --git a/src/auto-reply/reply/session-updates.test.ts b/src/auto-reply/reply/session-updates.test.ts index 3bf04a447b1..22cf0d99ce0 100644 --- a/src/auto-reply/reply/session-updates.test.ts +++ b/src/auto-reply/reply/session-updates.test.ts @@ -50,6 +50,8 @@ vi.mock("../../infra/skills-remote.js", () => ({ })); vi.mock("../../routing/session-key.js", () => ({ + normalizeAgentId: (id: string) => id, + normalizeMainKey: (key?: string) => key ?? "main", resolveAgentIdFromSessionKey: resolveAgentIdFromSessionKeyMock, }));