Files
sub2api/backend/internal/service/http_upstream_profile_test.go
T
Wesley Liddick 233f3dffe6 Merge pull request #6281 from wuji-labs/feat/http2-long-stream-keepalive
feat(upstream): add HTTP/2 PING keepalive for long LLM generation streams
2026-09-08 20:47:07 +08:00

54 lines
1.7 KiB
Go

package service
import (
"context"
"testing"
)
func TestWithHTTPUpstreamProfile_DefaultKeepsContext(t *testing.T) {
ctx := context.Background()
got := WithHTTPUpstreamProfile(ctx, HTTPUpstreamProfileDefault)
if got != ctx {
t.Fatal("default profile should not wrap context")
}
}
func TestWithHTTPUpstreamProfile_OpenAI(t *testing.T) {
ctx := WithHTTPUpstreamProfile(context.TODO(), HTTPUpstreamProfileOpenAI)
if profile := HTTPUpstreamProfileFromContext(ctx); profile != HTTPUpstreamProfileOpenAI {
t.Fatalf("expected profile %q, got %q", HTTPUpstreamProfileOpenAI, profile)
}
}
func TestWithHTTPUpstreamProfile_LongStream(t *testing.T) {
ctx := WithHTTPUpstreamProfile(context.TODO(), HTTPUpstreamProfileLongStream)
if profile := HTTPUpstreamProfileFromContext(ctx); profile != HTTPUpstreamProfileLongStream {
t.Fatalf("expected profile %q, got %q", HTTPUpstreamProfileLongStream, profile)
}
}
func TestWithHTTPUpstreamRedirectsDisabled(t *testing.T) {
//nolint:staticcheck // Exercises the defensive nil-context fallback.
ctx := WithHTTPUpstreamRedirectsDisabled(nil)
if !HTTPUpstreamRedirectsDisabled(ctx) {
t.Fatal("expected redirects to be disabled")
}
if HTTPUpstreamRedirectsDisabled(context.Background()) {
t.Fatal("redirects should remain enabled by default")
}
}
func TestWithHTTPUpstreamPublicHostsOnly(t *testing.T) {
//nolint:staticcheck // Exercises the defensive nil-context fallback.
ctx := WithHTTPUpstreamPublicHostsOnly(nil)
if !HTTPUpstreamPublicHostsOnly(ctx) {
t.Fatal("expected public-hosts-only marker to be set")
}
if HTTPUpstreamPublicHostsOnly(context.Background()) {
t.Fatal("marker must be absent by default")
}
if HTTPUpstreamRedirectsDisabled(ctx) {
t.Fatal("public-hosts-only must not disable redirects")
}
}