test: speed up subagent announce e2e and drop duplicate defer case

This commit is contained in:
Peter Steinberger
2026-02-16 09:10:11 +00:00
parent 404a8bc35f
commit 15f8c57797

View File

@@ -22,6 +22,17 @@ let configOverride: ReturnType<(typeof import("../config/config.js"))["loadConfi
},
};
function loadSessionStoreFixture(): Record<string, Record<string, unknown>> {
return new Proxy(sessionStore, {
get(target, key: string | symbol) {
if (typeof key === "string" && !(key in target) && key.includes(":subagent:")) {
return { inputTokens: 1, outputTokens: 1, totalTokens: 2 };
}
return target[key as keyof typeof target];
},
});
}
vi.mock("../gateway/call.js", () => ({
callGateway: vi.fn(async (req: unknown) => {
const typed = req as { method?: string; params?: { message?: string; sessionKey?: string } };
@@ -47,7 +58,7 @@ vi.mock("./tools/agent-step.js", () => ({
}));
vi.mock("../config/sessions.js", () => ({
loadSessionStore: vi.fn(() => sessionStore),
loadSessionStore: vi.fn(() => loadSessionStoreFixture()),
resolveAgentIdFromSessionKey: () => "main",
resolveStorePath: () => "/tmp/sessions.json",
resolveMainSessionKey: () => "agent:main:main",
@@ -93,6 +104,9 @@ describe("subagent announce formatting", () => {
sessionStore = {
"agent:main:subagent:test": {
sessionId: "child-session-123",
inputTokens: 1,
outputTokens: 1,
totalTokens: 2,
},
};
await runSubagentAnnounceFlow({
@@ -580,6 +594,9 @@ describe("subagent announce formatting", () => {
sessionStore = {
"agent:main:subagent:test": {
sessionId: "child-session-1",
inputTokens: 1,
outputTokens: 1,
totalTokens: 2,
},
};
@@ -742,34 +759,6 @@ describe("subagent announce formatting", () => {
expect(agentSpy).not.toHaveBeenCalled();
});
it("does not delete child session when announce is deferred for an active run", async () => {
const { runSubagentAnnounceFlow } = await import("./subagent-announce.js");
embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(true);
embeddedRunMock.waitForEmbeddedPiRunEnd.mockResolvedValue(false);
sessionStore = {
"agent:main:subagent:test": {
sessionId: "child-session-active",
},
};
const didAnnounce = await runSubagentAnnounceFlow({
childSessionKey: "agent:main:subagent:test",
childRunId: "run-child-active-delete",
requesterSessionKey: "agent:main:main",
requesterDisplayKey: "main",
task: "context-stress-test",
timeoutMs: 1000,
cleanup: "delete",
waitForCompletion: false,
startedAt: 10,
endedAt: 20,
outcome: { status: "ok" },
});
expect(didAnnounce).toBe(false);
expect(sessionsDeleteSpy).not.toHaveBeenCalled();
});
it("normalizes requesterOrigin for direct announce delivery", async () => {
const { runSubagentAnnounceFlow } = await import("./subagent-announce.js");
embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(false);