- 新增 Anthropic API Key 自动透传开关与后端透传分支(仅替换认证) - 账号编辑页新增自动透传开关,默认关闭 - 优化透传性能:SSE usage 解析 gjson 快路径、减少请求体重复拷贝、优化流式写回与非流式 usage 解析 - 补充单元测试与 benchmark,确保 Claude OAuth 路径不受影响
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAccount_IsAnthropicAPIKeyPassthroughEnabled(t *testing.T) {
|
|
t.Run("Anthropic API Key 开启", func(t *testing.T) {
|
|
account := &Account{
|
|
Platform: PlatformAnthropic,
|
|
Type: AccountTypeAPIKey,
|
|
Extra: map[string]any{
|
|
"anthropic_passthrough": true,
|
|
},
|
|
}
|
|
require.True(t, account.IsAnthropicAPIKeyPassthroughEnabled())
|
|
})
|
|
|
|
t.Run("Anthropic API Key 关闭", func(t *testing.T) {
|
|
account := &Account{
|
|
Platform: PlatformAnthropic,
|
|
Type: AccountTypeAPIKey,
|
|
Extra: map[string]any{
|
|
"anthropic_passthrough": false,
|
|
},
|
|
}
|
|
require.False(t, account.IsAnthropicAPIKeyPassthroughEnabled())
|
|
})
|
|
|
|
t.Run("字段类型非法默认关闭", func(t *testing.T) {
|
|
account := &Account{
|
|
Platform: PlatformAnthropic,
|
|
Type: AccountTypeAPIKey,
|
|
Extra: map[string]any{
|
|
"anthropic_passthrough": "true",
|
|
},
|
|
}
|
|
require.False(t, account.IsAnthropicAPIKeyPassthroughEnabled())
|
|
})
|
|
|
|
t.Run("非 Anthropic API Key 账号始终关闭", func(t *testing.T) {
|
|
oauth := &Account{
|
|
Platform: PlatformAnthropic,
|
|
Type: AccountTypeOAuth,
|
|
Extra: map[string]any{
|
|
"anthropic_passthrough": true,
|
|
},
|
|
}
|
|
require.False(t, oauth.IsAnthropicAPIKeyPassthroughEnabled())
|
|
|
|
openai := &Account{
|
|
Platform: PlatformOpenAI,
|
|
Type: AccountTypeAPIKey,
|
|
Extra: map[string]any{
|
|
"anthropic_passthrough": true,
|
|
},
|
|
}
|
|
require.False(t, openai.IsAnthropicAPIKeyPassthroughEnabled())
|
|
})
|
|
}
|