- Grok 流默认启用上游读空闲超时,首包前返回可 failover 错误并短冷却 - 同 team_id 账号在 429/free-usage 后对同模型共享进程内冷却,粘连与选号均过滤 - TokenRefreshService 已覆盖 Grok;NeedsRefresh 增加按账号稳定 jitter 防 stampede
26 lines
761 B
Go
26 lines
761 B
Go
//go:build unit
|
|
|
|
package service
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestResolveGrokStreamIdleTimeout(t *testing.T) {
|
|
require.Equal(t, 90*time.Second, resolveGrokStreamIdleTimeout(90))
|
|
require.Equal(t, defaultGrokStreamIdleTimeout, resolveGrokStreamIdleTimeout(0))
|
|
require.Equal(t, defaultGrokStreamIdleTimeout, resolveGrokStreamIdleTimeout(-1))
|
|
}
|
|
|
|
func TestGrokStreamIdleFailoverError(t *testing.T) {
|
|
account := &Account{ID: 1, Platform: PlatformGrok, Type: AccountTypeOAuth}
|
|
err := grokStreamIdleFailoverError(account, 180*time.Second)
|
|
require.NotNil(t, err)
|
|
require.Equal(t, 502, err.StatusCode)
|
|
require.True(t, err.SafeToFailoverAfterWrite)
|
|
require.Contains(t, string(err.ResponseBody), "empty_upstream")
|
|
}
|