21 lines
813 B
TypeScript
21 lines
813 B
TypeScript
import { expect } from "vitest";
|
|
|
|
import { normalizeChatType } from "../../src/channels/chat-type.js";
|
|
import { resolveConversationLabel } from "../../src/channels/conversation-label.js";
|
|
import { validateSenderIdentity } from "../../src/channels/sender-identity.js";
|
|
import type { MsgContext } from "../../src/auto-reply/templating.js";
|
|
|
|
export function expectInboundContextContract(ctx: MsgContext) {
|
|
expect(validateSenderIdentity(ctx)).toEqual([]);
|
|
|
|
expect(ctx.Body).toBeTypeOf("string");
|
|
expect(ctx.BodyForAgent).toBeTypeOf("string");
|
|
expect(ctx.BodyForCommands).toBeTypeOf("string");
|
|
|
|
const chatType = normalizeChatType(ctx.ChatType);
|
|
if (chatType && chatType !== "direct") {
|
|
const label = ctx.ConversationLabel?.trim() || resolveConversationLabel(ctx);
|
|
expect(label).toBeTruthy();
|
|
}
|
|
}
|