openclaw/extensions/mistral/model-definitions.test.ts

54 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
buildMistralCatalogModels,
buildMistralModelDefinition,
MISTRAL_DEFAULT_CONTEXT_WINDOW,
MISTRAL_DEFAULT_COST,
MISTRAL_DEFAULT_MAX_TOKENS,
MISTRAL_DEFAULT_MODEL_ID,
} from "./model-definitions.js";
describe("mistral model definitions", () => {
it("uses current Pi pricing for the bundled default model", () => {
expect(buildMistralModelDefinition()).toMatchObject({
id: MISTRAL_DEFAULT_MODEL_ID,
contextWindow: MISTRAL_DEFAULT_CONTEXT_WINDOW,
maxTokens: MISTRAL_DEFAULT_MAX_TOKENS,
cost: MISTRAL_DEFAULT_COST,
});
expect(MISTRAL_DEFAULT_COST).toEqual({
input: 0.5,
output: 1.5,
cacheRead: 0,
cacheWrite: 0,
});
});
it("publishes a curated set of current Mistral catalog models", () => {
expect(buildMistralCatalogModels()).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "codestral-latest",
input: ["text"],
contextWindow: 256000,
maxTokens: 4096,
}),
expect.objectContaining({
id: "magistral-small",
reasoning: true,
input: ["text"],
contextWindow: 128000,
maxTokens: 128000,
}),
expect.objectContaining({
id: "pixtral-large-latest",
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 128000,
}),
]),
);
});
});