diff --git a/extensions/discord/src/monitor/monitor.agent-components.test.ts b/extensions/discord/src/monitor/monitor.agent-components.test.ts index 310de99ddf0..2e7961c9f19 100644 --- a/extensions/discord/src/monitor/monitor.agent-components.test.ts +++ b/extensions/discord/src/monitor/monitor.agent-components.test.ts @@ -11,7 +11,10 @@ import { resetDiscordComponentRuntimeMocks, upsertPairingRequestMock, } from "../test-support/component-runtime.js"; -import { resolveComponentInteractionContext } from "./agent-components-helpers.js"; +import { + resolveAgentComponentRoute, + resolveComponentInteractionContext, +} from "./agent-components-helpers.js"; import { createAgentComponentButton, createAgentSelectMenu } from "./agent-components.js"; describe("agent components", () => { @@ -30,6 +33,30 @@ describe("agent components", () => { const createCfg = (): OpenClawConfig => ({}) as OpenClawConfig; + const resolvedDefaultDmSessionKey = () => + resolveAgentComponentRoute({ + ctx: { cfg: createCfg(), accountId: "default" }, + rawGuildId: undefined, + memberRoleIds: [], + isDirectMessage: true, + isGroupDm: false, + userId: "123456789", + channelId: "dm-channel", + parentId: undefined, + }).sessionKey; + + const resolvedDefaultGroupDmSessionKey = () => + resolveAgentComponentRoute({ + ctx: { cfg: createCfg(), accountId: "default" }, + rawGuildId: undefined, + memberRoleIds: [], + isDirectMessage: false, + isGroupDm: true, + userId: "123456789", + channelId: "group-dm-channel", + parentId: undefined, + }).sessionKey; + const createBaseDmInteraction = (overrides: Record = {}) => { const reply = vi.fn().mockResolvedValue(undefined); const defer = vi.fn().mockResolvedValue(undefined); @@ -181,8 +208,8 @@ describe("agent components", () => { content: "You are not authorized to use this button.", ephemeral: true, }); - expect(peekSystemEvents(defaultGroupDmSessionKey)).toEqual([]); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([]); + expect(peekSystemEvents(resolvedDefaultGroupDmSessionKey())).toEqual([]); + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); }); @@ -204,10 +231,10 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultGroupDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultGroupDmSessionKey())).toEqual([ "[Discord component: hello clicked by Alice#1234 (123456789)]", ]); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([]); + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); }); @@ -224,7 +251,7 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([ "[Discord component: hello clicked by Alice#1234 (123456789)]", ]); expect(upsertPairingRequestMock).not.toHaveBeenCalled(); @@ -244,7 +271,7 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([ "[Discord component: hello clicked by Alice#1234 (123456789)]", ]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); @@ -266,7 +293,7 @@ describe("agent components", () => { content: "DM interactions are disabled.", ephemeral: true, }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([]); + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); }); @@ -284,7 +311,7 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([ "[Discord select menu: hello interacted by Alice#1234 (123456789) (selected: alpha)]", ]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); @@ -303,7 +330,7 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([ "[Discord component: hello_cid clicked by Alice#1234 (123456789)]", ]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); @@ -322,7 +349,7 @@ describe("agent components", () => { expect(defer).not.toHaveBeenCalled(); expect(reply).toHaveBeenCalledWith({ content: "✓", ephemeral: true }); - expect(peekSystemEvents(defaultDmSessionKey)).toEqual([ + expect(peekSystemEvents(resolvedDefaultDmSessionKey())).toEqual([ "[Discord component: hello%2G clicked by Alice#1234 (123456789)]", ]); expect(readAllowFromStoreMock).not.toHaveBeenCalled(); diff --git a/extensions/signal/src/core.test.ts b/extensions/signal/src/core.test.ts index 300d4dc00a4..7d5a856505e 100644 --- a/extensions/signal/src/core.test.ts +++ b/extensions/signal/src/core.test.ts @@ -1,3 +1,4 @@ +import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; import { describe, expect, it, vi } from "vitest"; import { createPluginSetupWizardStatus } from "../../../test/helpers/plugins/setup-wizard.js"; import { signalPlugin } from "./channel.js"; @@ -275,7 +276,7 @@ describe("signal setup parsing", () => { }); it("uses configured defaultAccount for omitted DM policy account context", () => { - const cfg = { + const cfg: OpenClawConfig = { channels: { signal: { defaultAccount: "work", diff --git a/src/plugins/loader.test.ts b/src/plugins/loader.test.ts index f5976bd23f7..b95a3aa8055 100644 --- a/src/plugins/loader.test.ts +++ b/src/plugins/loader.test.ts @@ -731,7 +731,7 @@ describe("loadOpenClawPlugins", () => { }, }, { - name: "keeps bundled channel plugins behind restrictive allowlists even when channels..enabled=true", + name: "lets explicit bundled channel enablement bypass restrictive allowlists", config: { channels: { telegram: { @@ -744,8 +744,8 @@ describe("loadOpenClawPlugins", () => { } satisfies PluginLoadConfig, assert: (registry: ReturnType) => { const telegram = registry.plugins.find((entry) => entry.id === "telegram"); - expect(telegram?.status).toBe("disabled"); - expect(telegram?.error).toBe("not in allowlist"); + expect(telegram?.status).toBe("loaded"); + expect(telegram?.error).toBeUndefined(); expect(telegram?.explicitlyEnabled).toBe(true); }, },