import assert from "node:assert/strict";
import test from "node:test";
import {
isRevisionConflictError,
modelProfileTestFailureMessage,
modelProfileTestSuccessReason
} from "../apps/api/src/model-profile-test.ts";
test("modelProfileTestFailureMessage keeps PROVIDER_CONFIG_MISSING", () => {
assert.equal(
modelProfileTestFailureMessage(new Error("PROVIDER_CONFIG_MISSING:server-default")),
"PROVIDER_CONFIG_MISSING:server-default"
);
});
test("modelProfileTestFailureMessage wraps provider probe errors", () => {
assert.equal(
modelProfileTestFailureMessage(new Error("Incorrect API key provided")),
"PROVIDER_TEST_FAILED:Incorrect API key provided"
);
});
test("modelProfileTestFailureMessage maps timeout errors", () => {
const timeout = new Error("The operation was aborted due to timeout");
timeout.name = "TimeoutError";
assert.equal(
modelProfileTestFailureMessage(timeout),
"PROVIDER_TEST_FAILED:Connection timed out while reaching the model provider."
);
});
test("modelProfileTestSuccessReason includes model and response", () => {
assert.equal(
modelProfileTestSuccessReason({ model: "qwen-plus", response: "OK" }),
'Model "qwen-plus" responded successfully (OK).'
);
});
test("isRevisionConflictError detects revision conflicts", () => {
assert.equal(isRevisionConflictError(new Error("REVISION_CONFLICT:custom-1")), true);
assert.equal(isRevisionConflictError(new Error("PROVIDER_TEST_FAILED:boom")), false);
});