| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package service
- import (
- "net/http"
- "strings"
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestUpstreamRequestIDFromHeaders_UnconfiguredAccountRecordsNothing(t *testing.T) {
- h := http.Header{}
- h.Set("X-Client-Request-ID", "sub2api-client")
- h.Set("X-Request-ID", "sub2api-local")
- h.Set("X-Oneapi-Request-Id", "oneapi-1")
- h.Set("Request-Id", "req_official")
- h.Set("xai-request-id", "xai-1")
- h.Set("x-goog-request-id", "goog-1")
- require.Equal(t, "", UpstreamRequestIDFromHeaders(nil, h))
- for _, platform := range []string{PlatformAnthropic, PlatformOpenAI, PlatformGemini, PlatformAntigravity, PlatformGrok} {
- require.Equal(t, "", UpstreamRequestIDFromHeaders(&Account{Platform: platform}, h), platform)
- }
- blank := &Account{Platform: PlatformOpenAI, Extra: map[string]any{AccountExtraUpstreamRequestIDHeader: " "}}
- require.Equal(t, "", UpstreamRequestIDFromHeaders(blank, h))
- }
- func TestUpstreamRequestIDFromHeaders_ReadsOnlyConfiguredHeader(t *testing.T) {
- account := &Account{
- Platform: PlatformOpenAI,
- Extra: map[string]any{AccountExtraUpstreamRequestIDHeader: " x-oneapi-request-id "},
- }
- h := http.Header{}
- h.Set("X-Request-ID", "passthrough-from-real-upstream")
- require.Equal(t, "", UpstreamRequestIDFromHeaders(account, h))
- h.Set("X-Oneapi-Request-Id", " oneapi-2 ")
- require.Equal(t, "oneapi-2", UpstreamRequestIDFromHeaders(account, h))
- require.Equal(t, "", UpstreamRequestIDFromHeaders(account, nil))
- official := &Account{Platform: PlatformAnthropic, Extra: map[string]any{AccountExtraUpstreamRequestIDHeader: "request-id"}}
- only := http.Header{}
- only.Set("Request-Id", "req_official")
- require.Equal(t, "req_official", UpstreamRequestIDFromHeaders(official, only))
- }
- func TestUsageUpstreamRequestIDPtr(t *testing.T) {
- account := &Account{Extra: map[string]any{AccountExtraUpstreamRequestIDHeader: "X-Request-ID"}}
- h := http.Header{}
- h.Set("X-Request-ID", strings.Repeat("a", 200))
- require.Nil(t, usageUpstreamRequestIDPtr(account, h, true))
- require.Nil(t, usageUpstreamRequestIDPtr(account, http.Header{}, false))
- require.Nil(t, usageUpstreamRequestIDPtr(nil, h, false))
- require.Nil(t, usageUpstreamRequestIDPtr(&Account{}, h, false))
- got := usageUpstreamRequestIDPtr(account, h, false)
- require.NotNil(t, got)
- require.Len(t, *got, maxUsageUpstreamRequestIDLen)
- }
- func TestValidateUpstreamRequestIDHeaderExtra(t *testing.T) {
- require.NoError(t, ValidateUpstreamRequestIDHeaderExtra(nil))
- require.NoError(t, ValidateUpstreamRequestIDHeaderExtra(map[string]any{}))
- blank := map[string]any{AccountExtraUpstreamRequestIDHeader: " "}
- require.NoError(t, ValidateUpstreamRequestIDHeaderExtra(blank))
- _, present := blank[AccountExtraUpstreamRequestIDHeader]
- require.False(t, present, "blank header name must be removed")
- valid := map[string]any{AccountExtraUpstreamRequestIDHeader: " X-Oneapi-Request-Id "}
- require.NoError(t, ValidateUpstreamRequestIDHeaderExtra(valid))
- require.Equal(t, "X-Oneapi-Request-Id", valid[AccountExtraUpstreamRequestIDHeader])
- require.Error(t, ValidateUpstreamRequestIDHeaderExtra(map[string]any{AccountExtraUpstreamRequestIDHeader: 1}))
- require.Error(t, ValidateUpstreamRequestIDHeaderExtra(map[string]any{AccountExtraUpstreamRequestIDHeader: "X Request Id"}))
- require.Error(t, ValidateUpstreamRequestIDHeaderExtra(map[string]any{AccountExtraUpstreamRequestIDHeader: "X-Request-Id:"}))
- require.Error(t, ValidateUpstreamRequestIDHeaderExtra(map[string]any{AccountExtraUpstreamRequestIDHeader: strings.Repeat("x", 65)}))
- }
|