mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 14:00:43 +00:00
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
resolveCronDeliverySessionKey,
|
|
resolveCronFailureNotificationSessionKey,
|
|
resolveCronNotificationSessionKey,
|
|
resolveCronSessionTargetSessionKey,
|
|
} from "./session-target.js";
|
|
|
|
describe("cron session target helpers", () => {
|
|
it("extracts and trims persistent session targets", () => {
|
|
expect(resolveCronSessionTargetSessionKey("session: agent:main:telegram:direct:123 ")).toBe(
|
|
"agent:main:telegram:direct:123",
|
|
);
|
|
});
|
|
|
|
it("rejects unsafe persistent session targets", () => {
|
|
expect(() => resolveCronSessionTargetSessionKey("session:../../outside")).toThrow(
|
|
"invalid cron sessionTarget session id",
|
|
);
|
|
});
|
|
|
|
it("prefers sessionTarget over creator sessionKey for delivery", () => {
|
|
expect(
|
|
resolveCronDeliverySessionKey({
|
|
sessionTarget: "session:agent:main:telegram:direct:123",
|
|
sessionKey: "agent:main:telegram:group:ops:sender:123",
|
|
}),
|
|
).toBe("agent:main:telegram:direct:123");
|
|
});
|
|
|
|
it("falls back to trimmed creator sessionKey for delivery", () => {
|
|
expect(
|
|
resolveCronDeliverySessionKey({
|
|
sessionTarget: "isolated",
|
|
sessionKey: " agent:main:telegram:group:ops:sender:123 ",
|
|
}),
|
|
).toBe("agent:main:telegram:group:ops:sender:123");
|
|
});
|
|
|
|
it("uses cron failure session fallback when no delivery session exists", () => {
|
|
expect(resolveCronNotificationSessionKey({ jobId: "job-1", sessionKey: " " })).toBe(
|
|
"cron:job-1:failure",
|
|
);
|
|
expect(
|
|
resolveCronFailureNotificationSessionKey({ id: "job-2", sessionTarget: "isolated" }),
|
|
).toBe("cron:job-2:failure");
|
|
});
|
|
});
|