22 lines
873 B
TypeScript
22 lines
873 B
TypeScript
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);
|
|
});
|
|
});
|