File size: 1,928 Bytes
5448d8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
    );
  });
});