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.', ) }) })