mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-07 23:31:07 +00:00
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
|
|
import { describe, expect, it } from "vitest";
|
|
import { telegramThreading } from "./telegram-threading.js";
|
|
|
|
describe("telegramThreading", () => {
|
|
it("honors per-account replyToMode overrides", () => {
|
|
const resolveReplyToMode = telegramThreading.scopedAccountReplyToMode.resolveReplyToMode;
|
|
|
|
const cfg = {
|
|
channels: {
|
|
telegram: {
|
|
replyToMode: "all",
|
|
botToken: "token-default",
|
|
accounts: {
|
|
work: {
|
|
botToken: "token-work",
|
|
replyToMode: "first",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
} as OpenClawConfig;
|
|
|
|
expect(
|
|
resolveReplyToMode(telegramThreading.scopedAccountReplyToMode.resolveAccount(cfg, "work")),
|
|
).toBe("first");
|
|
expect(
|
|
resolveReplyToMode(telegramThreading.scopedAccountReplyToMode.resolveAccount(cfg, "default")),
|
|
).toBe("all");
|
|
});
|
|
|
|
it("keeps current DM topic threadId even when replyToId is present", () => {
|
|
const resolved = telegramThreading.resolveAutoThreadId({
|
|
to: "telegram:1234",
|
|
toolContext: {
|
|
currentChannelId: "telegram:1234",
|
|
currentThreadTs: "533274",
|
|
},
|
|
});
|
|
|
|
expect(resolved).toBe("533274");
|
|
});
|
|
|
|
it("does not override an explicit target topic when replyToId is present", () => {
|
|
const resolved = telegramThreading.resolveAutoThreadId({
|
|
to: "telegram:-1001:topic:99",
|
|
toolContext: {
|
|
currentChannelId: "telegram:-1001:topic:77",
|
|
currentThreadTs: "77",
|
|
},
|
|
});
|
|
|
|
expect(resolved).toBeUndefined();
|
|
});
|
|
});
|