import { ObjectId } from "mongodb"; import { MODELS_COLLECTION } from "../models.constants"; import { getModelsCollection, getModelContextWindow, } from "../models.getters"; import type { RealtimeModelDoc } from "../models.types"; function realtimeModel( overrides: Partial & Pick, ): RealtimeModelDoc { const now = new Date(); return { _id: new ObjectId(), name: overrides.modelId, type: "realtime", provider: "openai", available: true, createdAt: now, updatedAt: now, ...overrides, }; } describe("getModelContextWindow", () => { it("returns configDefaults.contextWindow for the model", async () => { await getModelsCollection().insertOne( realtimeModel({ modelId: "gpt-realtime", configDefaults: { contextWindow: 32_000 }, }), ); await expect(getModelContextWindow("gpt-realtime")).resolves.toBe(32_000); }); it("returns null when the model is missing", async () => { await expect(getModelContextWindow("missing-model")).resolves.toBeNull(); }); it("returns null when contextWindow is missing or not a positive number", async () => { await getModelsCollection().insertMany([ realtimeModel({ modelId: "no-window", configDefaults: {}, }), realtimeModel({ modelId: "zero-window", configDefaults: { contextWindow: 0 }, }), realtimeModel({ modelId: "string-window", configDefaults: { contextWindow: "64000" }, }), ]); await expect(getModelContextWindow("no-window")).resolves.toBeNull(); await expect(getModelContextWindow("zero-window")).resolves.toBeNull(); await expect(getModelContextWindow("string-window")).resolves.toBeNull(); }); }); describe("models collection", () => { it(`uses the "${MODELS_COLLECTION}" collection`, () => { expect(getModelsCollection().collectionName).toBe(MODELS_COLLECTION); }); });