66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import { describe, it } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
PreviewCompressionConfigSchema,
|
|
PreviewRequestSchema,
|
|
} from "../../../src/app/api/compression/preview/route.ts";
|
|
|
|
describe("compression preview API contract", () => {
|
|
it("accepts RTK and stacked preview payloads", () => {
|
|
assert.equal(
|
|
PreviewRequestSchema.safeParse({
|
|
messages: [{ role: "tool", content: "same\nsame\nsame" }],
|
|
mode: "rtk",
|
|
config: {
|
|
rtkConfig: {
|
|
intensity: "standard",
|
|
applyToToolResults: true,
|
|
customFiltersEnabled: true,
|
|
rawOutputRetention: "never",
|
|
},
|
|
},
|
|
}).success,
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
PreviewRequestSchema.safeParse({
|
|
messages: [{ role: "tool", content: "same\nsame\nsame" }],
|
|
mode: "stacked",
|
|
config: {
|
|
stackedPipeline: [
|
|
{ engine: "rtk", intensity: "standard" },
|
|
{ engine: "caveman", intensity: "full" },
|
|
],
|
|
},
|
|
}).success,
|
|
true
|
|
);
|
|
});
|
|
|
|
it("rejects invalid preview config instead of accepting arbitrary records", () => {
|
|
assert.equal(PreviewCompressionConfigSchema.safeParse({ unknown: true }).success, false);
|
|
assert.equal(
|
|
PreviewRequestSchema.safeParse({
|
|
messages: [{ role: "tool", content: "x" }],
|
|
mode: "rtk",
|
|
config: { rtkConfig: { intensity: "extreme" } },
|
|
}).success,
|
|
false
|
|
);
|
|
assert.equal(
|
|
PreviewCompressionConfigSchema.safeParse({
|
|
stackedPipeline: [{ engine: "rtk", intensity: "bogus" }],
|
|
}).success,
|
|
false
|
|
);
|
|
assert.equal(
|
|
PreviewCompressionConfigSchema.safeParse({
|
|
stackedPipeline: [{ engine: "rtk", config: { maxLinesPerResult: -1 } }],
|
|
}).success,
|
|
false
|
|
);
|
|
});
|
|
});
|