Files
clawdbot/src/infra/system-events.test.ts
Peter Steinberger c379191f80 chore: migrate to oxlint and oxfmt
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
2026-01-14 15:02:19 +00:00

50 lines
1.7 KiB
TypeScript

import { beforeEach, describe, expect, it } from "vitest";
import { prependSystemEvents } from "../auto-reply/reply/session-updates.js";
import type { ClawdbotConfig } from "../config/config.js";
import { resolveMainSessionKey } from "../config/sessions.js";
import { enqueueSystemEvent, peekSystemEvents, resetSystemEventsForTest } from "./system-events.js";
const cfg = {} as unknown as ClawdbotConfig;
const mainKey = resolveMainSessionKey(cfg);
describe("system events (session routing)", () => {
beforeEach(() => {
resetSystemEventsForTest();
});
it("does not leak session-scoped events into main", async () => {
enqueueSystemEvent("Discord reaction added: ✅", {
sessionKey: "discord:group:123",
contextKey: "discord:reaction:added:msg:user:✅",
});
expect(peekSystemEvents(mainKey)).toEqual([]);
expect(peekSystemEvents("discord:group:123")).toEqual(["Discord reaction added: ✅"]);
const main = await prependSystemEvents({
cfg,
sessionKey: mainKey,
isMainSession: true,
isNewSession: false,
prefixedBodyBase: "hello",
});
expect(main).toBe("hello");
expect(peekSystemEvents("discord:group:123")).toEqual(["Discord reaction added: ✅"]);
const discord = await prependSystemEvents({
cfg,
sessionKey: "discord:group:123",
isMainSession: false,
isNewSession: false,
prefixedBodyBase: "hi",
});
expect(discord).toMatch(/^System: \[[^\]]+\] Discord reaction added: ✅\n\nhi$/);
expect(peekSystemEvents("discord:group:123")).toEqual([]);
});
it("requires an explicit session key", () => {
expect(() => enqueueSystemEvent("Node: Mac Studio", { sessionKey: " " })).toThrow("sessionKey");
});
});