import { describe, expect, it } from 'vitest'; import { isOpencodeUpstreamSaturated } from '../../shared/opencode-error-details'; describe('isOpencodeUpstreamSaturated', () => { it.each([ '当前分组上游负载已饱和,请稍后再试', JSON.stringify({ error: { message: 'UPSTREAM capacity is SATURATED; try later' } }), ])('classifies explicit upstream saturation evidence: %s', (message) => { expect(isOpencodeUpstreamSaturated(message)).toBe(true); }); it.each([ 'rate_limit_exceeded', JSON.stringify({ error: { code: 'rate_limit_exceeded', message: 'Rate limit exceeded' } }), 'upstream request failed', 'provider saturated', 'user quota is not enough', ])('does not broaden saturation classification to other retry failures: %s', (message) => { expect(isOpencodeUpstreamSaturated(message)).toBe(false); }); });