import assert from "node:assert/strict";
import test from "node:test";
import {
llmEnvFingerprint,
modelProfileConnectivityPayloadChanged,
preferConnectedResourceId,
resolveModelProfileSaveStatus,
serverDefaultConnectionStatus,
isServerLlmEnvConfigured
} from "../apps/api/src/model-profile-connection-status.ts";
test("resolveModelProfileSaveStatus keeps connected until connectivity changes", () => {
assert.equal(
resolveModelProfileSaveStatus({
isNew: false,
currentStatus: "connected",
credentialsUpdated: false,
connectivityChanged: false
}),
"connected"
);
assert.equal(
resolveModelProfileSaveStatus({
isNew: false,
currentStatus: "connected",
credentialsUpdated: true,
connectivityChanged: false
}),
"untested"
);
assert.equal(
resolveModelProfileSaveStatus({
isNew: false,
currentStatus: "connected",
credentialsUpdated: false,
connectivityChanged: true
}),
"untested"
);
});
test("modelProfileConnectivityPayloadChanged detects provider and model updates", () => {
assert.equal(
modelProfileConnectivityPayloadChanged(
{ provider: "openai-compatible", modelName: "qwen-plus", baseUrl: "https://example/v1" },
{ provider: "openai-compatible", modelName: "qwen-max", baseUrl: "https://example/v1" }
),
true
);
assert.equal(
modelProfileConnectivityPayloadChanged(
{ provider: "openai-compatible", modelName: "qwen-plus", baseUrl: "https://example/v1" },
{ provider: "openai-compatible", modelName: "qwen-plus", baseUrl: "https://example/v1" }
),
false
);
});
test("serverDefaultConnectionStatus invalidates stale connected status", () => {
const env = {
LLM_PROVIDER: "openai-compatible",
LLM_BASE_URL: "https://example/v1",
LLM_MODEL: "qwen-plus",
LLM_API_KEY: "secret"
};
const fingerprint = llmEnvFingerprint(env);
assert.equal(
serverDefaultConnectionStatus({
currentStatus: "connected",
storedFingerprint: fingerprint,
env
}),
"connected"
);
assert.equal(
serverDefaultConnectionStatus({
currentStatus: "connected",
storedFingerprint: fingerprint,
env: { ...env, LLM_MODEL: "qwen-max" }
}),
"untested"
);
assert.equal(
serverDefaultConnectionStatus({
currentStatus: "connected",
storedFingerprint: undefined,
env
}),
"untested"
);
});
test("isServerLlmEnvConfigured requires API key, base URL, and model", () => {
assert.equal(
isServerLlmEnvConfigured({
LLM_API_KEY: "secret",
LLM_BASE_URL: "https://example/v1",
LLM_MODEL: "qwen-plus"
}),
true
);
assert.equal(
isServerLlmEnvConfigured({
LLM_API_KEY: "secret",
LLM_BASE_URL: "https://example/v1"
}),
false
);
assert.equal(
isServerLlmEnvConfigured({
LLM_BASE_URL: "https://example/v1",
LLM_MODEL: "qwen-plus"
}),
false
);
assert.equal(
isServerLlmEnvConfigured({
LLM_API_KEY: "secret",
LLM_MODEL: "qwen-plus"
}),
false
);
assert.equal(isServerLlmEnvConfigured({}), false);
});
test("preferConnectedResourceId picks connected over earlier failed profiles", () => {
assert.equal(
preferConnectedResourceId([
{ id: "glm-failed", status: "failed" },
{ id: "deepseek-ok", status: "connected" },
{ id: "qwen-failed", status: "failed" }
]),
"deepseek-ok"
);
assert.equal(
preferConnectedResourceId([
{ id: "glm-failed", status: "failed" },
{ id: "qwen-untested", status: "untested" }
]),
"glm-failed"
);
assert.equal(preferConnectedResourceId([]), undefined);
});