Files
2026-07-13 13:39:12 +08:00

41 lines
2.0 KiB
TypeScript

// tests/unit/compression/ionizerEngine.test.ts
import test from "node:test";
import assert from "node:assert/strict";
import { ionizerEngine } from "../../../open-sse/services/compression/engines/ionizer/index.ts";
import { retrieveBlock, resetCcrStore } from "../../../open-sse/services/compression/engines/ccr/index.ts";
const bigArray = JSON.stringify(Array.from({ length: 400 }, (_, i) => ({ i, v: `row-${i}` })));
test("ionizer enabled: oversized homogeneous array → inline sample + recoverable CCR marker", () => {
resetCcrStore();
const body = { messages: [{ role: "user", content: bigArray }] };
const res = ionizerEngine.apply(body, { stepConfig: {}, principalId: "p1" });
assert.equal(res.compressed, true);
const content = (res.body.messages as Array<{ content: string }>)[0].content;
assert.match(content, /\[ionizer: kept \d+\/400 rows; full → CCR retrieve hash=[0-9a-f]{24} chars=\d+\]$/);
const hash = content.match(/hash=([0-9a-f]{24})/)![1];
assert.equal(retrieveBlock(hash, "p1"), bigArray);
});
test("ionizer disabled via enabled:false → no-op", () => {
resetCcrStore();
const body = { messages: [{ role: "user", content: bigArray }] };
const res = ionizerEngine.apply(body, { stepConfig: { enabled: false }, principalId: "p1" });
assert.equal(res.compressed, false);
});
test("small array / non-array / non-homogeneous → no-op", () => {
resetCcrStore();
const small = { messages: [{ role: "user", content: JSON.stringify([{ a: 1 }, { a: 2 }]) }] };
assert.equal(ionizerEngine.apply(small, { stepConfig: {} }).compressed, false);
const notArr = { messages: [{ role: "user", content: '{"a":1}' }] };
assert.equal(ionizerEngine.apply(notArr, { stepConfig: {} }).compressed, false);
const mixed = { messages: [{ role: "user", content: JSON.stringify([{ a: 1 }, 2, "x"]) }] };
assert.equal(ionizerEngine.apply(mixed, { stepConfig: {} }).compressed, false);
});
test("engine declares sampling:true and is registered", () => {
assert.equal(ionizerEngine.sampling, true);
assert.equal(ionizerEngine.id, "ionizer");
});