Files
oh-my-pi/packages/ai/test/overflow-utils.test.ts
T
2026-03-03 14:15:18 +01:00

42 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "bun:test";
import type { AssistantMessage } from "@oh-my-pi/pi-ai";
import { isContextOverflow } from "@oh-my-pi/pi-ai/utils/overflow";
function createErrorMessage(errorMessage: string): AssistantMessage {
return {
role: "assistant",
content: [{ type: "text", text: "" }],
api: "anthropic-messages",
provider: "anthropic",
model: "claude-sonnet-4-5",
usage: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
totalTokens: 0,
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
},
stopReason: "error",
errorMessage,
timestamp: Date.now(),
};
}
describe("isContextOverflow - HTTP 413 variants", () => {
it("detects generic 413 payload-too-large errors", () => {
const message = createErrorMessage("413 Request Entity Too Large: payload too large for request body");
expect(isContextOverflow(message)).toBe(true);
});
it("detects Anthropic request size overflow wording", () => {
const message = createErrorMessage("Request exceeds the maximum size allowed by this model");
expect(isContextOverflow(message)).toBe(true);
});
it("does not classify unrelated 413 errors as overflow", () => {
const message = createErrorMessage("413 Forbidden");
expect(isContextOverflow(message)).toBe(false);
});
});