refactor: split channel target test helpers

This commit is contained in:
Peter Steinberger
2026-04-28 02:03:06 +01:00
parent 6c859d8c82
commit dc4512ad0c
19 changed files with 110 additions and 68 deletions

View File

@@ -1,78 +0,0 @@
type ConversationBindingHelpers = {
requestConversationBinding: (...args: unknown[]) => unknown;
detachConversationBinding: (...args: unknown[]) => unknown;
getCurrentConversationBinding: (...args: unknown[]) => unknown;
};
type InteractiveHandlerRegistration<
TChannel extends string,
TContext,
> = ConversationBindingHelpers & {
channel: TChannel;
namespace: string;
handler: (ctx: TContext) => unknown;
};
type BaseInteractiveContext<TChannel extends string> = ConversationBindingHelpers & {
channel: TChannel;
accountId: string;
conversationId: string;
parentConversationId?: string;
senderId: string;
senderUsername?: string;
auth?: unknown;
};
export type TelegramInteractiveHandlerContext = BaseInteractiveContext<"telegram"> & {
callbackId: string;
senderUsername?: string;
threadId?: number;
isGroup?: boolean;
isForum?: boolean;
callback: {
data: string;
namespace: string;
payload: string;
messageId: number;
chatId: string;
messageText?: string;
};
respond: Record<string, (...args: unknown[]) => unknown>;
};
export type DiscordInteractiveHandlerContext = BaseInteractiveContext<"discord"> & {
interactionId: string;
guildId?: string;
interaction: {
data: string;
namespace: string;
payload: string;
[key: string]: unknown;
};
respond: Record<string, (...args: unknown[]) => unknown>;
};
export type SlackInteractiveHandlerContext = BaseInteractiveContext<"slack"> & {
interactionId: string;
threadId?: string;
interaction: {
data: string;
namespace: string;
payload: string;
[key: string]: unknown;
};
respond: Record<string, (...args: unknown[]) => unknown>;
};
export type TelegramInteractiveHandlerRegistration = InteractiveHandlerRegistration<
"telegram",
TelegramInteractiveHandlerContext
>;
export type DiscordInteractiveHandlerRegistration = InteractiveHandlerRegistration<
"discord",
DiscordInteractiveHandlerContext
>;
export type SlackInteractiveHandlerRegistration = InteractiveHandlerRegistration<
"slack",
SlackInteractiveHandlerContext
>;