import { describe, expect, it } from "vitest"; import { buildDiscordGroupSystemPrompt, buildDiscordInboundAccessContext, buildDiscordUntrustedContext, } from "./inbound-context.js"; describe("Discord inbound context helpers", () => { it("builds guild access context from channel config and topic", () => { expect( buildDiscordInboundAccessContext({ channelConfig: { allowed: true, users: ["discord:user-1"], systemPrompt: "Use the runbook.", }, guildInfo: { id: "guild-1" }, sender: { id: "user-1", name: "tester", tag: "tester#0001", }, isGuild: true, channelTopic: "Production alerts only", }), ).toEqual({ groupSystemPrompt: "Use the runbook.", untrustedContext: [expect.stringContaining("Production alerts only")], ownerAllowFrom: ["user-1"], }); }); it("omits guild-only metadata for direct messages", () => { expect( buildDiscordInboundAccessContext({ sender: { id: "user-1", }, isGuild: false, channelTopic: "ignored", }), ).toEqual({ groupSystemPrompt: undefined, untrustedContext: undefined, ownerAllowFrom: undefined, }); }); it("keeps direct helper behavior consistent", () => { expect(buildDiscordGroupSystemPrompt({ allowed: true, systemPrompt: " hi " })).toBe("hi"); expect(buildDiscordUntrustedContext({ isGuild: true, channelTopic: "topic" })).toEqual([ expect.stringContaining("topic"), ]); }); });