41 lines
2.1 KiB
TypeScript
41 lines
2.1 KiB
TypeScript
// tests/unit/chatcore-request-setup.test.ts
|
|
// Characterization of resolveChatCoreRequestSetup — the first extracted pure slice of
|
|
// chatCore's request-setup phase (god-file decomposition). Locks the structural-narrowing
|
|
// of apiFormat/targetFormat and the requestedModel fallback.
|
|
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { resolveChatCoreRequestSetup } from "../../open-sse/handlers/chatCore/requestSetup.ts";
|
|
|
|
test("reads apiFormat / targetFormat only when present as strings", () => {
|
|
const r = resolveChatCoreRequestSetup(
|
|
{ apiFormat: "responses", targetFormat: "openai" },
|
|
{ model: "gpt-4o" },
|
|
"resolved-model"
|
|
);
|
|
assert.equal(r.apiFormat, "responses");
|
|
assert.equal(r.customModelTargetFormat, "openai");
|
|
});
|
|
|
|
test("apiFormat / targetFormat absent or non-string → undefined", () => {
|
|
assert.equal(resolveChatCoreRequestSetup({}, {}, "m").apiFormat, undefined);
|
|
assert.equal(resolveChatCoreRequestSetup({ apiFormat: 123 }, {}, "m").apiFormat, undefined);
|
|
assert.equal(resolveChatCoreRequestSetup({ targetFormat: null }, {}, "m").customModelTargetFormat, undefined);
|
|
});
|
|
|
|
test("modelInfo that is not an object → both markers undefined", () => {
|
|
const r = resolveChatCoreRequestSetup(null, { model: "x" }, "m");
|
|
assert.equal(r.apiFormat, undefined);
|
|
assert.equal(r.customModelTargetFormat, undefined);
|
|
});
|
|
|
|
test("requestedModel uses the client body.model when it is a non-blank string", () => {
|
|
assert.equal(resolveChatCoreRequestSetup({}, { model: "claude-3" }, "fallback").requestedModel, "claude-3");
|
|
});
|
|
|
|
test("requestedModel falls back to the resolved model id when body.model is blank/absent/non-string", () => {
|
|
assert.equal(resolveChatCoreRequestSetup({}, { model: " " }, "fallback").requestedModel, "fallback");
|
|
assert.equal(resolveChatCoreRequestSetup({}, {}, "fallback").requestedModel, "fallback");
|
|
assert.equal(resolveChatCoreRequestSetup({}, { model: 42 }, "fallback").requestedModel, "fallback");
|
|
assert.equal(resolveChatCoreRequestSetup({}, null, "fallback").requestedModel, "fallback");
|
|
});
|