Files
OmniRoute/tests/unit/compression/preview-fallback-reasons-6461.test.ts
Chirag Singhal e8b5aefb5a fix(compression): surface fallback reasons in preview response (#6461) (#6519)
fix(compression): surface fallback reasons in preview response (#6461). Integrated into release/v3.8.47. (thanks @chirag127)
2026-07-07 20:17:34 -03:00

57 lines
2.1 KiB
TypeScript

/**
* #6461 — the compression preview response must surface WHY a run fell back
* (deduped `fallbackReasons[]`, mirrored into `skippedReasons`) instead of the
* previously hard-coded `skippedReasons: []`. Non-fallback runs return [] on
* both — zero change on the happy path (regression guard, Rule #18).
*/
import test from "node:test";
import assert from "node:assert/strict";
import { join } from "node:path";
import { mkdtempSync, rmSync } from "node:fs";
import { tmpdir } from "node:os";
const TEST_DATA_DIR = mkdtempSync(join(tmpdir(), "preview-fallback-6461-"));
process.env.DATA_DIR = TEST_DATA_DIR;
process.env.API_KEY_SECRET = process.env.API_KEY_SECRET ?? "test-secret-32-chars-min-aaaaaaaa";
delete process.env.INITIAL_PASSWORD;
const core = await import("../../../src/lib/db/core.ts");
const route = await import("../../../src/app/api/compression/preview/route.ts");
function makeReq(body: unknown) {
return new Request("http://localhost/api/compression/preview", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify(body),
});
}
test.beforeEach(() => core.resetDbInstance());
test.after(() => {
core.resetDbInstance();
rmSync(TEST_DATA_DIR, { recursive: true, force: true });
});
test("#6461 preview exposes fallbackReasons and mirrors it into skippedReasons", async () => {
const res = await route.POST(
makeReq({
messages: [{ role: "user", content: "$ git status\nOn branch main\nnothing to commit" }],
engineId: "rtk",
})
);
assert.equal(res.status, 200);
const body = await res.json();
// Structural contract added by #6461 (absent on the pre-patch response).
assert.ok(Array.isArray(body.fallbackReasons), "fallbackReasons must be an array");
assert.deepEqual(
body.skippedReasons,
body.fallbackReasons,
"skippedReasons must mirror fallbackReasons"
);
// Happy path (no fallback): both empty, and fallbackReason is null.
if (body.fallbackApplied !== true) {
assert.deepEqual(body.fallbackReasons, []);
assert.equal(body.fallbackReason ?? null, null);
}
});