test: merge direct announce origin variants

This commit is contained in:
Peter Steinberger
2026-02-18 23:21:03 +00:00
parent 1a030a544b
commit c25a18493e

View File

@@ -795,16 +795,31 @@ describe("subagent announce formatting", () => {
expect(accountIds).toEqual(expect.arrayContaining(["acct-a", "acct-b"]));
});
it("uses requester origin for direct announce when not queued", async () => {
it.each([
{
testName: "uses requester origin for direct announce when not queued",
childRunId: "run-direct",
requesterOrigin: { channel: "whatsapp", accountId: "acct-123" },
expectedChannel: "whatsapp",
expectedAccountId: "acct-123",
},
{
testName: "normalizes requesterOrigin for direct announce delivery",
childRunId: "run-direct-origin",
requesterOrigin: { channel: " whatsapp ", accountId: " acct-987 " },
expectedChannel: "whatsapp",
expectedAccountId: "acct-987",
},
] as const)("$testName", async (testCase) => {
const { runSubagentAnnounceFlow } = await import("./subagent-announce.js");
embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(false);
embeddedRunMock.isEmbeddedPiRunStreaming.mockReturnValue(false);
const didAnnounce = await runSubagentAnnounceFlow({
childSessionKey: "agent:main:subagent:test",
childRunId: "run-direct",
childRunId: testCase.childRunId,
requesterSessionKey: "agent:main:main",
requesterOrigin: { channel: "whatsapp", accountId: "acct-123" },
requesterOrigin: testCase.requesterOrigin,
requesterDisplayKey: "main",
...defaultOutcomeAnnounce,
});
@@ -814,8 +829,8 @@ describe("subagent announce formatting", () => {
params?: Record<string, unknown>;
expectFinal?: boolean;
};
expect(call?.params?.channel).toBe("whatsapp");
expect(call?.params?.accountId).toBe("acct-123");
expect(call?.params?.channel).toBe(testCase.expectedChannel);
expect(call?.params?.accountId).toBe(testCase.expectedAccountId);
expect(call?.expectFinal).toBe(true);
});
@@ -998,26 +1013,6 @@ describe("subagent announce formatting", () => {
expect(agentSpy).not.toHaveBeenCalled();
});
it("normalizes requesterOrigin for direct announce delivery", async () => {
const { runSubagentAnnounceFlow } = await import("./subagent-announce.js");
embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(false);
embeddedRunMock.isEmbeddedPiRunStreaming.mockReturnValue(false);
const didAnnounce = await runSubagentAnnounceFlow({
childSessionKey: "agent:main:subagent:test",
childRunId: "run-direct-origin",
requesterSessionKey: "agent:main:main",
requesterOrigin: { channel: " whatsapp ", accountId: " acct-987 " },
requesterDisplayKey: "main",
...defaultOutcomeAnnounce,
});
expect(didAnnounce).toBe(true);
const call = agentSpy.mock.calls[0]?.[0] as { params?: Record<string, unknown> };
expect(call?.params?.channel).toBe("whatsapp");
expect(call?.params?.accountId).toBe("acct-987");
});
it("prefers requesterOrigin channel over stale session lastChannel in queued announce", async () => {
const { runSubagentAnnounceFlow } = await import("./subagent-announce.js");
embeddedRunMock.isEmbeddedPiRunActive.mockReturnValue(true);