repositories / pi-ext
pi-ext
bugabingas pi extensions
owned by admin
extensions/decay/__tests__/index.test.ts
Rawimport { describe, expect, it, vi } from "vitest";
import { __decayTest } from "../implementation";
describe("Decay model selection", () => {
const current = { provider: "current", id: "model", maxTokens: 8_000 };
const configured = { provider: "chosen", id: "model", maxTokens: 4_000 };
const ctx = {
model: current,
modelRegistry: {
getAvailable: vi.fn(() => [configured]),
},
} as never;
it("uses current model only for null or omitted configuration", () => {
expect(__decayTest.resolveModel(ctx, undefined)).toBe(current);
expect(__decayTest.resolveModel(ctx, null)).toBe(current);
expect(__decayTest.resolveModel(ctx, "")).toBeUndefined();
});
it("falls back to current when an explicit model is unavailable", () => {
expect(__decayTest.resolveModel(ctx, "chosen/model")).toBe(configured);
expect(__decayTest.resolveModel(ctx, "missing/model")).toBe(current);
expect(__decayTest.resolveModel(ctx, "broken")).toBeUndefined();
});
it("caps output at 80% reserve and model maximum", () => {
expect(__decayTest.maximumOutputTokens(current as never, 10_000)).toBe(
8_000,
);
expect(__decayTest.maximumOutputTokens(configured as never, 10_000)).toBe(
4_000,
);
});
it("bounds and redacts persisted failure reasons", () => {
const diagnostic = __decayTest.boundedError(
new Error(
`Bearer sk-live api-key=topsecret password=hunter2 ${"x".repeat(300)}`,
),
);
expect(diagnostic).not.toContain("sk-live");
expect(diagnostic).not.toContain("topsecret");
expect(diagnostic).not.toContain("hunter2");
expect(diagnostic.length).toBeLessThanOrEqual(240);
});
});