Files
diegosouzapw--omniroute/tests/unit/provider-node-select-4421.test.ts
2026-07-13 13:39:12 +08:00

54 lines
2.5 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
// #4421: creating a connection with `provider: "openai-compatible-responses"` (the bare
// derived type) returned 404 "OpenAI Compatible node not found" even though a node of
// that type existed — the handler did an exact-id lookup, but node ids carry a UUID
// suffix ("openai-compatible-responses-<uuid>"). selectProviderNodeForConnection now
// also resolves the bare type to the sole matching node.
const { selectProviderNodeForConnection, nodeTypeFromId } = await import(
"../../src/lib/db/providerNodeSelect.ts"
);
const UUID = "1715ed0f-1111-2222-3333-444455556666";
const UUID2 = "2222aaaa-1111-2222-3333-444455556666";
test("#4421 resolves by exact node id (dashboard path, unchanged)", () => {
const nodes = [{ id: `openai-compatible-responses-${UUID}`, name: "fox" }];
const r = selectProviderNodeForConnection(`openai-compatible-responses-${UUID}`, nodes);
assert.equal(r?.name, "fox");
});
test("#4421 resolves the bare base type to the sole matching node (direct-API path)", () => {
// Before the fix the handler called getProviderNodeById("openai-compatible-responses")
// — an exact-id lookup that returned null → 404.
const nodes = [{ id: `openai-compatible-responses-${UUID}`, name: "fox" }];
const r = selectProviderNodeForConnection("openai-compatible-responses", nodes);
assert.equal(r?.name, "fox");
});
test("#4421 returns null when the base type is ambiguous (more than one node)", () => {
const nodes = [
{ id: `openai-compatible-responses-${UUID}`, name: "a" },
{ id: `openai-compatible-responses-${UUID2}`, name: "b" },
];
assert.equal(selectProviderNodeForConnection("openai-compatible-responses", nodes), null);
});
test("#4421 a base type does not match a more-specific node type", () => {
// "openai-compatible" (chat) must NOT resolve an "openai-compatible-responses" node.
const nodes = [{ id: `openai-compatible-responses-${UUID}`, name: "fox" }];
assert.equal(selectProviderNodeForConnection("openai-compatible", nodes), null);
});
test("#4421 nodeTypeFromId strips a trailing UUID", () => {
assert.equal(nodeTypeFromId(`openai-compatible-responses-${UUID}`), "openai-compatible-responses");
assert.equal(nodeTypeFromId(`openai-compatible-${UUID}`), "openai-compatible");
assert.equal(nodeTypeFromId("no-uuid-here"), "no-uuid-here");
});
test("#4421 returns null when no node matches", () => {
assert.equal(selectProviderNodeForConnection("anthropic-compatible", []), null);
});