Files
OmniRoute/tests/unit/perplexity-web-model-mappings.test.ts

45 lines
1.7 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import { mkdtempSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
process.env.DATA_DIR = mkdtempSync(join(tmpdir(), "omniroute-perplexity-models-"));
const { PROVIDER_MODELS } = await import("../../open-sse/config/providerModels.ts");
const { MODEL_MAP, THINKING_MAP } =
await import("../../open-sse/executors/perplexity-web/protocol.ts");
test("Perplexity Web registers the refreshed model catalog", () => {
const models = PROVIDER_MODELS["pplx-web"];
assert.ok(models, "pplx-web should be in PROVIDER_MODELS");
assert.equal(models.length, 11);
const modelIds = models.map((model) => model.id);
const expectedModelIds = [
"pplx-auto",
"pplx-gpt-5.6-terra",
"pplx-gpt-5.6-sol",
"pplx-sonnet",
"pplx-opus",
"pplx-gemini",
"pplx-nemotron",
"pplx-sonar",
"pplx-kimi",
"pplx-glm",
"pplx-grok-4.5",
];
assert.deepEqual([...modelIds].sort(), expectedModelIds.sort());
});
test("every advertised Perplexity Web model has an explicit internal mapping", () => {
const missing = PROVIDER_MODELS["pplx-web"].filter((model) => !MODEL_MAP[model.id]);
assert.deepEqual(missing, []);
assert.deepEqual(MODEL_MAP["pplx-gpt-5.6-terra"], ["search", "gpt56_terra"]);
assert.deepEqual(MODEL_MAP["pplx-gpt-5.6-sol"], ["search", "gpt56_sol"]);
assert.deepEqual(MODEL_MAP["pplx-grok-4.5"], ["search", "grok45low"]);
assert.equal(THINKING_MAP["pplx-gpt-5.6-terra"], "gpt56_terra_thinking");
assert.equal(THINKING_MAP["pplx-gpt-5.6-sol"], "gpt56_sol_thinking");
assert.equal(THINKING_MAP["pplx-grok-4.5"], "grok45medium");
});