69 lines
1.7 KiB
Go
69 lines
1.7 KiB
Go
package handlers
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/maximhq/bifrost/core/schemas"
|
|
"github.com/maximhq/bifrost/framework/kvstore"
|
|
"github.com/maximhq/bifrost/framework/logstore"
|
|
"github.com/maximhq/bifrost/transports/bifrost-http/lib"
|
|
)
|
|
|
|
type testWSHandlerStore struct {
|
|
allowDirectKeys bool
|
|
}
|
|
|
|
func (s testWSHandlerStore) ShouldAllowDirectKeys() bool {
|
|
return s.allowDirectKeys
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetHeaderMatcher() *lib.HeaderMatcher {
|
|
return nil
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetAvailableProviders() []schemas.ModelProvider {
|
|
return nil
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetStreamChunkInterceptor() lib.StreamChunkInterceptor {
|
|
return nil
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetAsyncJobExecutor() *logstore.AsyncJobExecutor {
|
|
return nil
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetAsyncJobResultTTL() int {
|
|
return 0
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetKVStore() *kvstore.Store {
|
|
return nil
|
|
}
|
|
|
|
func (s testWSHandlerStore) GetMCPHeaderCombinedAllowlist() schemas.WhiteList {
|
|
return nil
|
|
}
|
|
|
|
func TestCreateBifrostContextFromAuth_BaggageSessionIDSetsGrouping(t *testing.T) {
|
|
ctx, cancel := createBifrostContextFromAuth(testWSHandlerStore{}, &authHeaders{
|
|
baggage: "foo=bar, session-id=rt-ws-123, baz=qux",
|
|
})
|
|
defer cancel()
|
|
|
|
if got, _ := ctx.Value(schemas.BifrostContextKeyParentRequestID).(string); got != "rt-ws-123" {
|
|
t.Fatalf("parent request id = %q, want %q", got, "rt-ws-123")
|
|
}
|
|
}
|
|
|
|
func TestCreateBifrostContextFromAuth_EmptyBaggageSessionIDIgnored(t *testing.T) {
|
|
ctx, cancel := createBifrostContextFromAuth(testWSHandlerStore{}, &authHeaders{
|
|
baggage: "session-id= ",
|
|
})
|
|
defer cancel()
|
|
|
|
if got := ctx.Value(schemas.BifrostContextKeyParentRequestID); got != nil {
|
|
t.Fatalf("parent request id should be unset, got %#v", got)
|
|
}
|
|
}
|