refactor(payload-tests): share single payload summary assertion

This commit is contained in:
Peter Steinberger 2026-03-17 07:56:55 +00:00
parent e510132f3c
commit d46f3bd739

View File

@ -40,6 +40,18 @@ describe("buildEmbeddedRunPayloads", () => {
expect(payloads[0]?.text).toBe(OVERLOADED_FALLBACK_TEXT);
};
function expectSinglePayloadSummary(
payloads: ReturnType<typeof buildPayloads>,
expected: { text: string; isError?: boolean },
) {
expectSinglePayloadText(payloads, expected.text);
if (expected.isError === undefined) {
expect(payloads[0]?.isError).toBeUndefined();
return;
}
expect(payloads[0]?.isError).toBe(expected.isError);
}
function expectNoPayloads(params: Parameters<typeof buildPayloads>[0]) {
const payloads = buildPayloads(params);
expect(payloads).toHaveLength(0);
@ -100,9 +112,10 @@ describe("buildEmbeddedRunPayloads", () => {
model: "claude-3-5-sonnet",
});
expect(payloads).toHaveLength(1);
expect(payloads[0]?.text).toBe(formatBillingErrorMessage("Anthropic", "claude-3-5-sonnet"));
expect(payloads[0]?.isError).toBe(true);
expectSinglePayloadSummary(payloads, {
text: formatBillingErrorMessage("Anthropic", "claude-3-5-sonnet"),
isError: true,
});
});
it("does not emit a synthetic billing error for successful turns with stale errorMessage", () => {
@ -242,9 +255,9 @@ describe("buildEmbeddedRunPayloads", () => {
lastToolError: { toolName: "browser", error: "connection timeout" },
});
expect(payloads).toHaveLength(1);
expect(payloads[0]?.isError).toBeUndefined();
expect(payloads[0]?.text).toContain("recovered");
expectSinglePayloadSummary(payloads, {
text: "Checked the page and recovered with final answer.",
});
});
it("suppresses recoverable tool errors containing 'required' for non-mutating tools", () => {
@ -335,8 +348,7 @@ describe("buildEmbeddedRunPayloads", () => {
},
});
expect(payloads).toHaveLength(1);
expect(payloads[0]?.text).toBe("Status loaded.");
expectSinglePayloadSummary(payloads, { text: "Status loaded." });
});
it("dedupes identical tool warning text already present in assistant output", () => {
@ -360,8 +372,7 @@ describe("buildEmbeddedRunPayloads", () => {
},
});
expect(payloads).toHaveLength(1);
expect(payloads[0]?.text).toBe(warningText);
expectSinglePayloadSummary(payloads, { text: warningText ?? "" });
});
it("includes non-recoverable tool error details when verbose mode is on", () => {