43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { describe, expect, test } from 'bun:test'
|
|
|
|
import { formatReachabilityFailureDetail } from './system-check.ts'
|
|
|
|
describe('formatReachabilityFailureDetail', () => {
|
|
test('returns generic failure detail for non-codex transport', () => {
|
|
const detail = formatReachabilityFailureDetail(
|
|
'https://api.openai.com/v1/models',
|
|
429,
|
|
'{"error":"rate_limit"}',
|
|
{
|
|
transport: 'chat_completions',
|
|
requestedModel: 'gpt-4o',
|
|
resolvedModel: 'gpt-4o',
|
|
},
|
|
)
|
|
|
|
expect(detail).toBe(
|
|
'Unexpected status 429 from https://api.openai.com/v1/models. Body: {"error":"rate_limit"}',
|
|
)
|
|
})
|
|
|
|
test('adds alias/entitlement hint for codex model support 400s', () => {
|
|
const detail = formatReachabilityFailureDetail(
|
|
'https://chatgpt.com/backend-api/codex/responses',
|
|
400,
|
|
'{"detail":"The \\"gpt-5.3-codex-spark\\" model is not supported when using Codex with a ChatGPT account."}',
|
|
{
|
|
transport: 'codex_responses',
|
|
requestedModel: 'codexspark',
|
|
resolvedModel: 'gpt-5.3-codex-spark',
|
|
},
|
|
)
|
|
|
|
expect(detail).toContain(
|
|
'model alias "codexspark" resolved to "gpt-5.3-codex-spark"',
|
|
)
|
|
expect(detail).toContain(
|
|
'Try "codexplan" or another entitled Codex model.',
|
|
)
|
|
})
|
|
})
|