Skip to content

Commit 02e7525

Browse files
committed
test(session): cover direct route poisoning cases
1 parent b97dd3b commit 02e7525

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { describe, expect, it } from "vitest";
2+
import { resolveLastChannelRaw, resolveLastToRaw } from "./session-delivery.js";
3+
4+
describe("session delivery direct-session routing overrides", () => {
5+
it.each([
6+
"agent:main:direct:user-1",
7+
"agent:main:telegram:direct:123456",
8+
"agent:main:telegram:account-a:direct:123456",
9+
"agent:main:telegram:dm:123456",
10+
"agent:main:telegram:direct:123456:thread:99",
11+
"agent:main:telegram:account-a:direct:123456:topic:ops",
12+
])("lets webchat override persisted routes for strict direct key %s", (sessionKey) => {
13+
expect(
14+
resolveLastChannelRaw({
15+
originatingChannelRaw: "webchat",
16+
persistedLastChannel: "telegram",
17+
sessionKey,
18+
}),
19+
).toBe("webchat");
20+
expect(
21+
resolveLastToRaw({
22+
originatingChannelRaw: "webchat",
23+
originatingToRaw: "session:dashboard",
24+
persistedLastChannel: "telegram",
25+
persistedLastTo: "123456",
26+
sessionKey,
27+
}),
28+
).toBe("session:dashboard");
29+
});
30+
31+
it.each([
32+
"agent:main:main:direct",
33+
"agent:main:cron:job-1:dm",
34+
"agent:main:subagent:worker:direct:user-1",
35+
"agent:main:telegram:channel:direct",
36+
"agent:main:telegram:account-a:direct",
37+
"agent:main:telegram:direct:123456:cron:job-1",
38+
])("keeps persisted external routes for malformed direct-like key %s", (sessionKey) => {
39+
expect(
40+
resolveLastChannelRaw({
41+
originatingChannelRaw: "webchat",
42+
persistedLastChannel: "telegram",
43+
sessionKey,
44+
}),
45+
).toBe("telegram");
46+
expect(
47+
resolveLastToRaw({
48+
originatingChannelRaw: "webchat",
49+
originatingToRaw: "session:dashboard",
50+
persistedLastChannel: "telegram",
51+
persistedLastTo: "group:12345",
52+
sessionKey,
53+
}),
54+
).toBe("group:12345");
55+
});
56+
});

0 commit comments

Comments
 (0)