repositories / pi-ext
pi-ext
bugabingas pi extensions
owned by admin
extensions/context-size/__tests__/contract.test.ts
Rawimport { fileURLToPath } from "node:url";
import { afterEach, describe, expect, it } from "vitest";
import {
createPiSession,
type PiSession,
} from "../../../test/fixture/create-pi-session.ts";
import { __test } from "../index.ts";
let session: PiSession | undefined;
afterEach(async () => {
await session?.dispose();
session = undefined;
});
describe("context-size contract", () => {
it("loads through the owned fixture", async () => {
session = await createPiSession({
extensionPaths: [fileURLToPath(new URL("../index.ts", import.meta.url))],
});
expect(session.errors).toEqual([]);
expect(session.extensions).toHaveLength(1);
});
it("renders the tui view as a bar alone", () => {
expect(__test.renderThinBar(26)).toBe("━━━───────");
expect(__test.renderThinBar(null)).toBe("──────────");
});
it("spells out the non-tui label with human-readable headroom", () => {
expect(
__test.buildPlainLabel({
tokens: 262_000,
contextWindow: 1_000_000,
percent: 26.2,
}),
).toBe("context 26% used, 738k left");
expect(
__test.buildPlainLabel({
tokens: null,
contextWindow: 1_000_000,
percent: null,
}),
).toBe("context unknown");
});
it("scales token counts through k and M", () => {
expect(__test.formatTokens(940)).toBe("940");
expect(__test.formatTokens(1_180)).toBe("1.2k");
expect(__test.formatTokens(262_000)).toBe("262k");
expect(__test.formatTokens(1_618_000)).toBe("1.6M");
expect(__test.formatTokens(121_527_000)).toBe("122M");
});
});