|
- package middleware
-
- import (
- "net/http"
- "net/http/httptest"
- "testing"
-
- "github.com/QuantumNous/new-api/common"
- "github.com/gin-gonic/gin"
- "github.com/stretchr/testify/require"
- )
-
- func TestDisableCacheSetsNoCacheHeaders(t *testing.T) {
- gin.SetMode(gin.TestMode)
- router := gin.New()
- router.Use(DisableCache())
- router.GET("/", func(c *gin.Context) { c.Status(http.StatusNoContent) })
-
- response := httptest.NewRecorder()
- router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
-
- require.Equal(t, http.StatusNoContent, response.Code)
- require.Equal(t, "no-store, no-cache, must-revalidate, private, max-age=0", response.Header().Get("Cache-Control"))
- require.Equal(t, "no-cache", response.Header().Get("Pragma"))
- require.Equal(t, "0", response.Header().Get("Expires"))
- }
-
- func TestRequestIdPropagatesSameIDToContextAndResponse(t *testing.T) {
- gin.SetMode(gin.TestMode)
- router := gin.New()
- router.Use(RequestId())
- router.GET("/", func(c *gin.Context) {
- id := c.GetString(common.RequestIdKey)
- require.NotEmpty(t, id)
- require.Equal(t, id, c.Request.Context().Value(common.RequestIdKey))
- c.Status(http.StatusNoContent)
- })
-
- response := httptest.NewRecorder()
- router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
-
- require.Equal(t, http.StatusNoContent, response.Code)
- require.NotEmpty(t, response.Header().Get(common.RequestIdKey))
- }
|