import { describe, expect, it } from 'vitest'; import { directTurnFailureNoticeText } from '../src/view/project-development/chat/conversation/directTurnFailure'; describe('DirectProject 上游失败文案', () => { it.each([401, 403, 408, 429, 500, 502, 503, 504])( '保留 HTTP %s 的具体原因', (statusCode) => { const text = directTurnFailureNoticeText({ type: 'modelCallFailed', kind: { type: 'upstreamFailed', statusCode, native: null }, detail: `上游 HTTP ${statusCode}`, }); expect(text).toContain(`HTTP ${statusCode}`); expect(text).not.toContain('智能创作请求无效'); }, ); it('原生分类优先于 HTTP 状态文案', () => { const text = directTurnFailureNoticeText({ type: 'modelCallFailed', kind: { type: 'upstreamFailed', statusCode: 429, native: { type: 'context-window-exceeded' }, }, detail: 'upstream', }); expect(text).toContain('模型上下文已超限'); expect(text).not.toContain('HTTP 429'); }); });