mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-16 12:30:49 +00:00
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import type { OpenClawConfig } from "../config/config.js";
|
|
import { resolveSessionAgentIds } from "./agent-scope.js";
|
|
|
|
describe("resolveSessionAgentIds", () => {
|
|
const cfg = {
|
|
agents: {
|
|
list: [{ id: "main" }, { id: "beta", default: true }],
|
|
},
|
|
} as OpenClawConfig;
|
|
|
|
it("falls back to the configured default when sessionKey is missing", () => {
|
|
const { defaultAgentId, sessionAgentId } = resolveSessionAgentIds({
|
|
config: cfg,
|
|
});
|
|
expect(defaultAgentId).toBe("beta");
|
|
expect(sessionAgentId).toBe("beta");
|
|
});
|
|
|
|
it("falls back to the configured default when sessionKey is non-agent", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
sessionKey: "telegram:slash:123",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("beta");
|
|
});
|
|
|
|
it("falls back to the configured default for global sessions", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
sessionKey: "global",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("beta");
|
|
});
|
|
|
|
it("keeps the agent id for provider-qualified agent sessions", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
sessionKey: "agent:beta:slack:channel:c1",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("beta");
|
|
});
|
|
|
|
it("uses the agent id from agent session keys", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
sessionKey: "agent:main:main",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("main");
|
|
});
|
|
|
|
it("uses explicit agentId when sessionKey is missing", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
agentId: "main",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("main");
|
|
});
|
|
|
|
it("prefers explicit agentId over non-agent session keys", () => {
|
|
const { sessionAgentId } = resolveSessionAgentIds({
|
|
sessionKey: "telegram:slash:123",
|
|
agentId: "main",
|
|
config: cfg,
|
|
});
|
|
expect(sessionAgentId).toBe("main");
|
|
});
|
|
});
|