package openai import ( "net/http" "net/http/httptest" "testing" "github.com/go-chi/chi/v5/middleware" ) func traceIDViaMiddleware(req *http.Request) string { if req == nil { return requestTraceID(nil) } var got string h := middleware.RequestID(http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { got = requestTraceID(r) })) h.ServeHTTP(httptest.NewRecorder(), req) return got } func TestRequestTraceIDPriority(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "/v1/chat/completions?__trace_id=query-trace", nil) req.Header.Set("X-Ds2-Test-Trace", "header-trace") got := traceIDViaMiddleware(req) if got != "query-trace" { t.Fatalf("expected query trace id to win, got %q", got) } } func TestRequestTraceIDHeaderFallback(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "/v1/chat/completions", nil) req.Header.Set("X-Ds2-Test-Trace", "header-trace") got := traceIDViaMiddleware(req) if got != "header-trace" { t.Fatalf("expected header trace id to win when query missing, got %q", got) } } func TestRequestTraceIDReqIDFallback(t *testing.T) { req := httptest.NewRequest(http.MethodGet, "/v1/chat/completions", nil) got := traceIDViaMiddleware(req) if got == "" { t.Fatal("expected middleware request id fallback to be non-empty") } }