Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/decay/__tests__/index.test.ts

Raw
import { 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);
	});
});