fix(email): support legacy AI gateway models
This commit is contained in:
@@ -2,8 +2,10 @@ import assert from "node:assert/strict"
|
||||
import test from "node:test"
|
||||
import {
|
||||
buildSuggestionMail,
|
||||
buildEntitySuggestionRequest,
|
||||
dismissEntitySuggestion,
|
||||
selectCandidates,
|
||||
shouldRetryWithLegacyAiModel,
|
||||
validateSuggestions,
|
||||
type EntityCandidate,
|
||||
} from "../src/modules/email/email.entity-suggestions"
|
||||
@@ -69,3 +71,22 @@ test("dismisses only the selected entity suggestion", () => {
|
||||
)
|
||||
assert.deepEqual(dismissEntitySuggestion(null, "customers", 1), [])
|
||||
})
|
||||
|
||||
test("uses Luna by default and omits reasoning effort for the legacy fallback", () => {
|
||||
const request = buildEntitySuggestionRequest(buildSuggestionMail({ subject: "Test" }), [customer])
|
||||
assert.equal(request.model, "gpt-5.6-luna")
|
||||
assert.equal(request.reasoning_effort, "none")
|
||||
|
||||
const fallback = buildEntitySuggestionRequest(buildSuggestionMail({ subject: "Test" }), [customer], "gpt-4o-mini")
|
||||
assert.equal(fallback.model, "gpt-4o-mini")
|
||||
assert.equal("reasoning_effort" in fallback, false)
|
||||
})
|
||||
|
||||
test("retries model compatibility errors without retrying auth, rate-limit, or configuration errors", () => {
|
||||
for (const status of [400, 404, 422, 500, 502]) {
|
||||
assert.equal(shouldRetryWithLegacyAiModel({ status }), true)
|
||||
}
|
||||
for (const status of [401, 403, 429, 503]) {
|
||||
assert.equal(shouldRetryWithLegacyAiModel({ status }), false)
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user