93 lines
2.6 KiB
Go
93 lines
2.6 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMergeAnthropicBeta(t *testing.T) {
|
|
got := mergeAnthropicBeta(
|
|
[]string{"oauth-2025-04-20", "interleaved-thinking-2025-05-14"},
|
|
"foo, oauth-2025-04-20,bar, foo",
|
|
)
|
|
require.Equal(t, "oauth-2025-04-20,interleaved-thinking-2025-05-14,foo,bar", got)
|
|
}
|
|
|
|
func TestMergeAnthropicBeta_EmptyIncoming(t *testing.T) {
|
|
got := mergeAnthropicBeta(
|
|
[]string{"oauth-2025-04-20", "interleaved-thinking-2025-05-14"},
|
|
"",
|
|
)
|
|
require.Equal(t, "oauth-2025-04-20,interleaved-thinking-2025-05-14", got)
|
|
}
|
|
|
|
func TestStripBetaToken(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
header string
|
|
token string
|
|
want string
|
|
}{
|
|
{
|
|
name: "token in middle",
|
|
header: "oauth-2025-04-20,context-1m-2025-08-07,interleaved-thinking-2025-05-14",
|
|
token: "context-1m-2025-08-07",
|
|
want: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
},
|
|
{
|
|
name: "token at start",
|
|
header: "context-1m-2025-08-07,oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
token: "context-1m-2025-08-07",
|
|
want: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
},
|
|
{
|
|
name: "token at end",
|
|
header: "oauth-2025-04-20,interleaved-thinking-2025-05-14,context-1m-2025-08-07",
|
|
token: "context-1m-2025-08-07",
|
|
want: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
},
|
|
{
|
|
name: "token not present",
|
|
header: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
token: "context-1m-2025-08-07",
|
|
want: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
},
|
|
{
|
|
name: "empty header",
|
|
header: "",
|
|
token: "context-1m-2025-08-07",
|
|
want: "",
|
|
},
|
|
{
|
|
name: "with spaces",
|
|
header: "oauth-2025-04-20, context-1m-2025-08-07 , interleaved-thinking-2025-05-14",
|
|
token: "context-1m-2025-08-07",
|
|
want: "oauth-2025-04-20,interleaved-thinking-2025-05-14",
|
|
},
|
|
{
|
|
name: "only token",
|
|
header: "context-1m-2025-08-07",
|
|
token: "context-1m-2025-08-07",
|
|
want: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := stripBetaToken(tt.header, tt.token)
|
|
require.Equal(t, tt.want, got)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestMergeAnthropicBetaDropping_Context1M(t *testing.T) {
|
|
required := []string{"oauth-2025-04-20", "interleaved-thinking-2025-05-14"}
|
|
incoming := "context-1m-2025-08-07,foo-beta,oauth-2025-04-20"
|
|
drop := map[string]struct{}{"context-1m-2025-08-07": {}}
|
|
|
|
got := mergeAnthropicBetaDropping(required, incoming, drop)
|
|
require.Equal(t, "oauth-2025-04-20,interleaved-thinking-2025-05-14,foo-beta", got)
|
|
require.NotContains(t, got, "context-1m-2025-08-07")
|
|
}
|