package middleware import ( "net/http/httptest" "testing" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" ) func TestCORSMiddleware_Headers(t *testing.T) { gin.SetMode(gin.TestMode) r := gin.New() r.Use(CORSMiddleware()) r.GET("/test", func(c *gin.Context) { c.Status(200) }) w := httptest.NewRecorder() req := httptest.NewRequest("GET", "/test", nil) r.ServeHTTP(w, req) assert.Equal(t, 200, w.Code) assert.Equal(t, "*", w.Header().Get("Access-Control-Allow-Origin")) assert.Contains(t, w.Header().Get("Access-Control-Allow-Methods"), "GET") assert.Contains(t, w.Header().Get("Access-Control-Allow-Headers"), "Authorization") assert.Equal(t, "86400", w.Header().Get("Access-Control-Max-Age")) assert.Equal(t, "true", w.Header().Get("Access-Control-Allow-Credentials")) } func TestCORSMiddleware_Options(t *testing.T) { gin.SetMode(gin.TestMode) r := gin.New() r.Use(CORSMiddleware()) r.GET("/test", func(c *gin.Context) { c.Status(200) }) w := httptest.NewRecorder() req := httptest.NewRequest("OPTIONS", "/test", nil) r.ServeHTTP(w, req) assert.Equal(t, 204, w.Code) } func TestRequestLoggerMiddleware(t *testing.T) { gin.SetMode(gin.TestMode) r := gin.New() r.Use(RequestLoggerMiddleware()) r.GET("/test", func(c *gin.Context) { c.Status(200) }) w := httptest.NewRecorder() req := httptest.NewRequest("GET", "/test", nil) r.ServeHTTP(w, req) assert.Equal(t, 200, w.Code) }