package middleware import ( "net/http" "net/http/httptest" "testing" "github.com/gin-gonic/gin" ) func TestRequestIDMiddlewarePassesThrough(t *testing.T) { gin.SetMode(gin.TestMode) rec := httptest.NewRecorder() c, _ := gin.CreateTestContext(rec) c.Request = httptest.NewRequest(http.MethodGet, "/", nil) c.Request.Header.Set(RequestIDHeader, "request-1") RequestIDMiddleware()(c) if rec.Header().Get(RequestIDHeader) != "request-1" { t.Fatalf("header = %s", rec.Header().Get(RequestIDHeader)) } if RequestID(c) != "request-1" { t.Fatalf("request id = %s", RequestID(c)) } } func TestRequestIDMiddlewareGenerates(t *testing.T) { gin.SetMode(gin.TestMode) rec := httptest.NewRecorder() c, _ := gin.CreateTestContext(rec) c.Request = httptest.NewRequest(http.MethodGet, "/", nil) RequestIDMiddleware()(c) if RequestID(c) == "" { t.Fatal("should generate request id") } } func TestRedactSensitiveQuery(t *testing.T) { got := RedactSensitiveQuery("access_token=abc&password=secret&roomId=1") if got != "access_token=%5Bredacted%5D&password=%5Bredacted%5D&roomId=1" { t.Fatalf("redacted query = %s", got) } }