mirror of https://github.com/openclaw/openclaw.git
test: harden agent event bus coverage
This commit is contained in:
parent
6a9285d1f5
commit
0bf930bdc7
|
|
@ -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"]);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue