mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-16 20:40:45 +00:00
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveNativeCommandSessionTargets } from "./native-command-session-targets.js";
|
|
|
|
describe("resolveNativeCommandSessionTargets", () => {
|
|
it("uses the bound session for both targets when present", () => {
|
|
expect(
|
|
resolveNativeCommandSessionTargets({
|
|
agentId: "codex",
|
|
sessionPrefix: "discord:slash",
|
|
userId: "user-1",
|
|
targetSessionKey: "agent:codex:discord:channel:chan-1",
|
|
boundSessionKey: "agent:codex:acp:binding:discord:default:seed",
|
|
}),
|
|
).toEqual({
|
|
sessionKey: "agent:codex:acp:binding:discord:default:seed",
|
|
commandTargetSessionKey: "agent:codex:acp:binding:discord:default:seed",
|
|
});
|
|
});
|
|
|
|
it("falls back to the routed session target when unbound", () => {
|
|
expect(
|
|
resolveNativeCommandSessionTargets({
|
|
agentId: "qwen",
|
|
sessionPrefix: "telegram:slash",
|
|
userId: "user-1",
|
|
targetSessionKey: "agent:qwen:telegram:direct:user-1",
|
|
}),
|
|
).toEqual({
|
|
sessionKey: "agent:qwen:telegram:slash:user-1",
|
|
commandTargetSessionKey: "agent:qwen:telegram:direct:user-1",
|
|
});
|
|
});
|
|
|
|
it("supports lowercase session keys for providers that already normalize", () => {
|
|
expect(
|
|
resolveNativeCommandSessionTargets({
|
|
agentId: "Qwen",
|
|
sessionPrefix: "Slack:Slash",
|
|
userId: "U123",
|
|
targetSessionKey: "agent:qwen:slack:channel:c1",
|
|
lowercaseSessionKey: true,
|
|
}),
|
|
).toEqual({
|
|
sessionKey: "agent:qwen:slack:slash:u123",
|
|
commandTargetSessionKey: "agent:qwen:slack:channel:c1",
|
|
});
|
|
});
|
|
});
|