From ecfb3abbed0ce142eafc6753afab0616e0c13b53 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 20 Apr 2026 17:59:55 +0100 Subject: [PATCH] test: share slack approval origin fixture --- extensions/slack/src/approval-native.test.ts | 73 ++++++++++---------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/extensions/slack/src/approval-native.test.ts b/extensions/slack/src/approval-native.test.ts index a925df18441..a578c49f00a 100644 --- a/extensions/slack/src/approval-native.test.ts +++ b/extensions/slack/src/approval-native.test.ts @@ -32,6 +32,38 @@ function writeStore(store: Record) { clearSessionStoreCacheForTest(); } +function createExecApprovalRequest( + overrides: Partial<{ + turnSourceThreadId: string; + sessionKey: string; + }> = {}, +) { + return { + id: "req-1", + request: { + command: "echo hi", + turnSourceChannel: "slack", + turnSourceTo: "channel:C123", + turnSourceAccountId: "default", + turnSourceThreadId: overrides.turnSourceThreadId ?? "1712345678.123456", + sessionKey: overrides.sessionKey ?? "agent:main:slack:channel:c123:thread:1712345678.123456", + }, + createdAtMs: 0, + expiresAtMs: 1000, + }; +} + +async function resolveExecOriginTarget( + requestOverrides: Parameters[0] = {}, +) { + return await slackNativeApprovalAdapter.native?.resolveOriginTarget?.({ + cfg: buildConfig(), + accountId: "default", + approvalKind: "exec", + request: createExecApprovalRequest(requestOverrides), + }); +} + describe("slack native approval adapter", () => { it("keeps approval availability enabled when approvers exist but native delivery is off", () => { const cfg = buildConfig({ @@ -128,24 +160,7 @@ describe("slack native approval adapter", () => { }); it("resolves origin targets from slack turn source", async () => { - const target = await slackNativeApprovalAdapter.native?.resolveOriginTarget?.({ - cfg: buildConfig(), - accountId: "default", - approvalKind: "exec", - request: { - id: "req-1", - request: { - command: "echo hi", - turnSourceChannel: "slack", - turnSourceTo: "channel:C123", - turnSourceAccountId: "default", - turnSourceThreadId: "1712345678.123456", - sessionKey: "agent:main:slack:channel:c123:thread:1712345678.123456", - }, - createdAtMs: 0, - expiresAtMs: 1000, - }, - }); + const target = await resolveExecOriginTarget(); expect(target).toEqual({ to: "channel:C123", @@ -154,28 +169,14 @@ describe("slack native approval adapter", () => { }); it("keeps origin delivery when session and turn source thread ids differ only by Slack timestamp precision", async () => { - const target = await slackNativeApprovalAdapter.native?.resolveOriginTarget?.({ - cfg: buildConfig(), - accountId: "default", - approvalKind: "exec", - request: { - id: "req-1", - request: { - command: "echo hi", - turnSourceChannel: "slack", - turnSourceTo: "channel:C123", - turnSourceAccountId: "default", - turnSourceThreadId: "1712345678.123456", - sessionKey: "agent:main:slack:channel:c123:thread:1712345678.123456", - }, - createdAtMs: 0, - expiresAtMs: 1000, - }, + const target = await resolveExecOriginTarget({ + turnSourceThreadId: "1712345678.1234567", + sessionKey: "agent:main:slack:channel:c123:thread:1712345678.123456", }); expect(target).toEqual({ to: "channel:C123", - threadId: "1712345678.123456", + threadId: "1712345678.1234567", }); });