test: harden agent event bus coverage

This commit is contained in:
Peter Steinberger 2026-03-13 18:36:23 +00:00
parent 6a9285d1f5
commit 0bf930bdc7
1 changed files with 61 additions and 0 deletions

View File

@ -83,4 +83,65 @@ describe("agent-events sequencing", () => {
expect(receivedSessionKey).toBeUndefined();
});
test("merges later run context updates into existing runs", async () => {
resetAgentRunContextForTest();
registerAgentRunContext("run-ctx", {
sessionKey: "session-main",
isControlUiVisible: true,
});
registerAgentRunContext("run-ctx", {
verboseLevel: "high",
isHeartbeat: true,
});
expect(getAgentRunContext("run-ctx")).toEqual({
sessionKey: "session-main",
verboseLevel: "high",
isHeartbeat: true,
isControlUiVisible: true,
});
});
test("falls back to registered sessionKey when event sessionKey is blank", async () => {
resetAgentRunContextForTest();
registerAgentRunContext("run-ctx", { sessionKey: "session-main" });
let receivedSessionKey: string | undefined;
const stop = onAgentEvent((evt) => {
receivedSessionKey = evt.sessionKey;
});
emitAgentEvent({
runId: "run-ctx",
stream: "assistant",
data: { text: "hi" },
sessionKey: " ",
});
stop();
expect(receivedSessionKey).toBe("session-main");
});
test("keeps notifying later listeners when one throws", async () => {
const seen: string[] = [];
const stopBad = onAgentEvent(() => {
throw new Error("boom");
});
const stopGood = onAgentEvent((evt) => {
seen.push(evt.runId);
});
expect(() =>
emitAgentEvent({
runId: "run-safe",
stream: "assistant",
data: { text: "hi" },
}),
).not.toThrow();
stopGood();
stopBad();
expect(seen).toEqual(["run-safe"]);
});
});