mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-21 23:11:01 +00:00
fix(slack): correct typed message event overloads (#31701)
This commit is contained in:
@@ -192,4 +192,26 @@ describe("registerSlackMessageEvents", () => {
|
||||
expect(handleSlackMessage).toHaveBeenCalledTimes(2);
|
||||
expect(messageQueueMock).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("applies subtype system-event handling for message.channels events", async () => {
|
||||
messageQueueMock.mockClear();
|
||||
messageAllowMock.mockReset().mockResolvedValue([]);
|
||||
const { channelHandler, handleSlackMessage } = createMessageHandlers({
|
||||
dmPolicy: "open",
|
||||
channelType: "channel",
|
||||
});
|
||||
|
||||
expect(channelHandler).toBeTruthy();
|
||||
|
||||
await channelHandler!({
|
||||
event: {
|
||||
...makeChangedEvent({ channel: "C1", user: "U1" }),
|
||||
channel_type: "channel",
|
||||
},
|
||||
body: {},
|
||||
});
|
||||
|
||||
expect(handleSlackMessage).not.toHaveBeenCalled();
|
||||
expect(messageQueueMock).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -102,12 +102,18 @@ export function registerSlackMessageEvents(params: {
|
||||
});
|
||||
// Slack may dispatch channel/group message subscriptions under typed event
|
||||
// names. Register explicit handlers so both delivery styles are supported.
|
||||
ctx.app.event("message.channels", async ({ event, body }: SlackEventMiddlewareArgs) => {
|
||||
await handleIncomingMessageEvent({ event, body });
|
||||
});
|
||||
ctx.app.event("message.groups", async ({ event, body }: SlackEventMiddlewareArgs) => {
|
||||
await handleIncomingMessageEvent({ event, body });
|
||||
});
|
||||
ctx.app.event(
|
||||
"message.channels",
|
||||
async ({ event, body }: SlackEventMiddlewareArgs<"message.channels">) => {
|
||||
await handleIncomingMessageEvent({ event, body });
|
||||
},
|
||||
);
|
||||
ctx.app.event(
|
||||
"message.groups",
|
||||
async ({ event, body }: SlackEventMiddlewareArgs<"message.groups">) => {
|
||||
await handleIncomingMessageEvent({ event, body });
|
||||
},
|
||||
);
|
||||
|
||||
ctx.app.event("app_mention", async ({ event, body }: SlackEventMiddlewareArgs<"app_mention">) => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user