spark-server/internal/pkg/reqctx/reqctx_test.go
2026-09-18 14:50:41 +08:00

49 lines
1.2 KiB
Go

package reqctx
import "testing"
func TestParseHTTPRealIP(t *testing.T) {
got := ParseHTTPRealIP(" 203.0.113.10 ", "198.51.100.1, 192.0.2.1", "192.0.2.1:1234")
if got != "203.0.113.10" {
t.Fatalf("x-real-ip %q", got)
}
got = ParseHTTPRealIP("", "198.51.100.1, 192.0.2.1", "192.0.2.1:1234")
if got != "198.51.100.1" {
t.Fatalf("xff %q", got)
}
got = ParseHTTPRealIP("", "", "192.0.2.1:1234")
if got != "192.0.2.1" {
t.Fatalf("remote %q", got)
}
}
func TestRealIPFromContext(t *testing.T) {
ctx := With(t.Context(), &RequestContext{RealIP: "203.0.113.10"})
if RealIP(ctx) != "203.0.113.10" {
t.Fatalf("got %q", RealIP(ctx))
}
if RealIP(t.Context()) != "" {
t.Fatal("empty ctx")
}
}
func TestRequestIDFromContext(t *testing.T) {
ctx := With(t.Context(), &RequestContext{RequestID: "abc"})
if RequestID(ctx) != "abc" {
t.Fatalf("got %q", RequestID(ctx))
}
if RequestID(t.Context()) != "" {
t.Fatal("empty ctx")
}
}
func TestLangFromContext(t *testing.T) {
ctx := With(t.Context(), &RequestContext{Language: "en-US"})
if Language(ctx) != "en" {
t.Fatalf("got %q", Language(ctx))
}
if Language(t.Context()) != "zh-CN" {
t.Fatalf("default %q", Language(t.Context()))
}
}