test: add routing/session isolation edge-case regressions

This commit is contained in:
Peter Steinberger
2026-02-24 23:24:51 +00:00
parent 9fccf60733
commit 9b53102100
4 changed files with 119 additions and 0 deletions

View File

@@ -321,4 +321,39 @@ describe("resolveSessionDeliveryTarget", () => {
expect(resolved.to).toBe("user:U123");
expect(resolved.threadId).toBeUndefined();
});
it("keeps explicit threadId in heartbeat mode", () => {
const resolved = resolveSessionDeliveryTarget({
entry: {
sessionId: "sess-heartbeat-explicit-thread",
updatedAt: 1,
lastChannel: "telegram",
lastTo: "-100123",
lastThreadId: 999,
},
requestedChannel: "last",
mode: "heartbeat",
explicitThreadId: 42,
});
expect(resolved.channel).toBe("telegram");
expect(resolved.to).toBe("-100123");
expect(resolved.threadId).toBe(42);
expect(resolved.threadIdExplicit).toBe(true);
});
it("parses explicit heartbeat topic targets into threadId", () => {
const cfg: OpenClawConfig = {};
const resolved = resolveHeartbeatDeliveryTarget({
cfg,
heartbeat: {
target: "telegram",
to: "63448508:topic:1008013",
},
});
expect(resolved.channel).toBe("telegram");
expect(resolved.to).toBe("63448508");
expect(resolved.threadId).toBe(1008013);
});
});