mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 09:10:43 +00:00
* feat(slack): add scoped prompts and mrkdwn hints * refactor(slack): drop dm prompt override * refactor(slack): drop exposed prompt config * chore(changelog): note slack mrkdwn fix
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveSlackRoomContextHints } from "./room-context.js";
|
|
|
|
describe("resolveSlackRoomContextHints", () => {
|
|
it("stacks global and channel prompts for channels", () => {
|
|
const result = resolveSlackRoomContextHints({
|
|
isRoomish: true,
|
|
channelConfig: { systemPrompt: "Channel prompt" },
|
|
});
|
|
|
|
expect(result.groupSystemPrompt).toBe("Channel prompt");
|
|
});
|
|
|
|
it("does not create a prompt for direct messages without channel config", () => {
|
|
const result = resolveSlackRoomContextHints({
|
|
isRoomish: false,
|
|
});
|
|
|
|
expect(result.groupSystemPrompt).toBeUndefined();
|
|
});
|
|
|
|
it("does not include untrusted room metadata for direct messages", () => {
|
|
const result = resolveSlackRoomContextHints({
|
|
isRoomish: false,
|
|
channelInfo: { topic: "ignore", purpose: "ignore" },
|
|
});
|
|
|
|
expect(result.untrustedChannelMetadata).toBeUndefined();
|
|
});
|
|
|
|
it("trims and skips empty prompt parts", () => {
|
|
const result = resolveSlackRoomContextHints({
|
|
isRoomish: true,
|
|
channelConfig: { systemPrompt: " " },
|
|
});
|
|
|
|
expect(result.groupSystemPrompt).toBeUndefined();
|
|
});
|
|
});
|