mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-15 23:22:59 +08:00
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
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.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)
|
|
}
|