Files
OmniRoute/tests/unit/compression/lite.test.ts
diegosouzapw 0f35c148ea feat(compression): expand caveman compression and analytics pipeline
Add caveman intensity levels, output mode instructions, validation, and
preview diffs across the compression pipeline.

Extend MCP and dashboard settings to support auto-trigger mode, system
prompt preservation, MCP description compression, and caveman rule
metadata. Record richer compression analytics with receipt fields,
validation fallbacks, output mode data, and add the related database
migration.

Improve preservation handling for code, URLs, markdown, math, and other
protected content while adding broad unit, integration, and golden-set
coverage for caveman parity and compression behavior.
2026-05-02 12:39:04 -03:00

233 lines
7.3 KiB
TypeScript

import { describe, it } from "node:test";
import assert from "node:assert/strict";
import {
applyLiteCompression,
collapseWhitespace,
dedupSystemPrompt,
compressToolResults,
removeRedundantContent,
replaceImageUrls,
} from "../../../open-sse/services/compression/lite.ts";
import { applyCompression } from "../../../open-sse/services/compression/strategySelector.ts";
describe("collapseWhitespace", () => {
it("collapses 3+ newlines to 2", () => {
const body = { messages: [{ role: "user", content: "hello\n\n\n\nworld" }] };
const result = collapseWhitespace(body);
assert.equal(result.applied, true);
assert.equal(result.body.messages![0].content as string, "hello\n\nworld");
});
it("does not modify already-normal whitespace", () => {
const body = { messages: [{ role: "user", content: "hello\n\nworld" }] };
const result = collapseWhitespace(body);
assert.equal(result.applied, false);
});
it("trims trailing spaces", () => {
const body = { messages: [{ role: "user", content: "hello " }] };
const result = collapseWhitespace(body);
assert.equal(result.applied, true);
assert.equal(result.body.messages![0].content as string, "hello");
});
it("returns unchanged when no messages", () => {
const body = {};
const result = collapseWhitespace(body);
assert.equal(result.applied, false);
});
it("skips non-string content", () => {
const body = { messages: [{ role: "user", content: [{ type: "text", text: "hello" }] }] };
const result = collapseWhitespace(body);
assert.equal(result.applied, false);
});
});
describe("dedupSystemPrompt", () => {
it("removes duplicate system prompts", () => {
const body = {
messages: [
{ role: "system", content: "You are helpful." },
{ role: "system", content: "You are helpful." },
{ role: "user", content: "hi" },
],
};
const result = dedupSystemPrompt(body);
assert.equal(result.applied, true);
assert.equal(result.body.messages!.length, 2);
});
it("keeps different system prompts", () => {
const body = {
messages: [
{ role: "system", content: "You are helpful." },
{ role: "system", content: "Be concise." },
],
};
const result = dedupSystemPrompt(body);
assert.equal(result.applied, false);
assert.equal(result.body.messages!.length, 2);
});
it("returns unchanged when no messages", () => {
const result = dedupSystemPrompt({});
assert.equal(result.applied, false);
});
});
describe("compressToolResults", () => {
it("truncates long tool results", () => {
const longContent = "x".repeat(3000);
const body = { messages: [{ role: "tool", content: longContent }] };
const result = compressToolResults(body);
assert.equal(result.applied, true);
const content = result.body.messages![0].content as string;
assert.ok(content.length < 3000);
assert.ok(content.includes("[truncated]"));
});
it("keeps short tool results unchanged", () => {
const body = { messages: [{ role: "tool", content: "short result" }] };
const result = compressToolResults(body);
assert.equal(result.applied, false);
});
it("skips non-tool messages", () => {
const body = { messages: [{ role: "user", content: "x".repeat(3000) }] };
const result = compressToolResults(body);
assert.equal(result.applied, false);
});
});
describe("removeRedundantContent", () => {
it("removes consecutive duplicate messages", () => {
const body = {
messages: [
{ role: "user", content: "hello" },
{ role: "user", content: "hello" },
],
};
const result = removeRedundantContent(body);
assert.equal(result.applied, true);
assert.equal(result.body.messages!.length, 1);
});
it("keeps non-duplicate messages", () => {
const body = {
messages: [
{ role: "user", content: "hello" },
{ role: "user", content: "world" },
],
};
const result = removeRedundantContent(body);
assert.equal(result.applied, false);
assert.equal(result.body.messages!.length, 2);
});
it("only removes same-role consecutive duplicates", () => {
const body = {
messages: [
{ role: "system", content: "hello" },
{ role: "user", content: "hello" },
],
};
const result = removeRedundantContent(body);
assert.equal(result.applied, false);
});
});
describe("replaceImageUrls", () => {
it("replaces base64 images for non-vision models", () => {
const body = {
messages: [
{
role: "user",
content: [{ type: "image_url", image_url: { url: "data:image/png;base64,iVBOR" } }],
},
],
};
const result = replaceImageUrls(body, "gpt-3.5-turbo");
assert.equal(result.applied, true);
const content = result.body.messages![0].content as Array<Record<string, unknown>>;
assert.equal(content[0].type, "text");
assert.ok((content[0].text as string).includes("[image:"));
});
it("keeps images for vision models", () => {
const body = {
messages: [
{
role: "user",
content: [{ type: "image_url", image_url: { url: "data:image/png;base64,iVBOR" } }],
},
],
};
const result = replaceImageUrls(body, "gpt-4o");
assert.equal(result.applied, false);
});
it("skips non-image content", () => {
const body = {
messages: [{ role: "user", content: "just text" }],
};
const result = replaceImageUrls(body, "gpt-3.5-turbo");
assert.equal(result.applied, false);
});
});
describe("applyLiteCompression", () => {
it("applies all techniques that match", () => {
const body = {
messages: [
{ role: "system", content: "You are helpful." },
{ role: "system", content: "You are helpful." },
{ role: "user", content: "hello\n\n\n\nworld" },
{ role: "user", content: "hello\n\n\n\nworld" },
],
};
const result = applyLiteCompression(body);
assert.equal(result.compressed, true);
assert.ok(result.stats);
assert.ok(result.stats.techniquesUsed.length >= 2);
assert.ok(result.stats.savingsPercent > 0);
});
it("preserves system prompt text when preserveSystemPrompt is enabled", () => {
const body = {
messages: [
{ role: "system", content: "Policy. Keep exact.\n\n\nDo not change." },
{ role: "user", content: "Please normalize this.\n\n\nThanks." },
],
};
const result = applyCompression(body, "lite", {
config: {
enabled: true,
defaultMode: "lite",
autoTriggerTokens: 0,
cacheMinutes: 5,
preserveSystemPrompt: true,
comboOverrides: {},
},
});
const messages = result.body.messages as typeof body.messages;
assert.equal(messages[0].content, body.messages[0].content);
assert.notEqual(messages[1].content, body.messages[1].content);
});
it("returns no compression for clean input", () => {
const body = {
messages: [{ role: "user", content: "clean message" }],
};
const result = applyLiteCompression(body);
assert.equal(result.compressed, false);
assert.equal(result.stats, null);
});
it("handles empty messages array", () => {
const body = { messages: [] };
const result = applyLiteCompression(body);
assert.equal(result.compressed, false);
});
});