| 123456789101112131415161718192021222324252627282930313233343536 |
- //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.True(t, err.RetryableOnSameAccount)
- require.True(t, err.RequestScopedTransient)
- require.Equal(t, 1, err.SameAccountRetryMax)
- require.Contains(t, string(err.ResponseBody), "empty_upstream")
- require.WithinDuration(t, time.Now().Add(180*time.Second), err.SameAccountRetryDeadline, 2*time.Second)
- }
- func TestGrokStreamIdleFailoverErrorRequiresGrokAccount(t *testing.T) {
- openAI := &Account{ID: 2, Platform: PlatformOpenAI, Type: AccountTypeOAuth}
- err := grokStreamIdleFailoverError(openAI, time.Second)
- require.False(t, err.RetryableOnSameAccount)
- require.True(t, err.RequestScopedTransient)
- }
|