Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

45 rindas
1.4 KiB

  1. package middleware
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "testing"
  6. "github.com/QuantumNous/new-api/common"
  7. "github.com/gin-gonic/gin"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestDisableCacheSetsNoCacheHeaders(t *testing.T) {
  11. gin.SetMode(gin.TestMode)
  12. router := gin.New()
  13. router.Use(DisableCache())
  14. router.GET("/", func(c *gin.Context) { c.Status(http.StatusNoContent) })
  15. response := httptest.NewRecorder()
  16. router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
  17. require.Equal(t, http.StatusNoContent, response.Code)
  18. require.Equal(t, "no-store, no-cache, must-revalidate, private, max-age=0", response.Header().Get("Cache-Control"))
  19. require.Equal(t, "no-cache", response.Header().Get("Pragma"))
  20. require.Equal(t, "0", response.Header().Get("Expires"))
  21. }
  22. func TestRequestIdPropagatesSameIDToContextAndResponse(t *testing.T) {
  23. gin.SetMode(gin.TestMode)
  24. router := gin.New()
  25. router.Use(RequestId())
  26. router.GET("/", func(c *gin.Context) {
  27. id := c.GetString(common.RequestIdKey)
  28. require.NotEmpty(t, id)
  29. require.Equal(t, id, c.Request.Context().Value(common.RequestIdKey))
  30. c.Status(http.StatusNoContent)
  31. })
  32. response := httptest.NewRecorder()
  33. router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
  34. require.Equal(t, http.StatusNoContent, response.Code)
  35. require.NotEmpty(t, response.Header().Get(common.RequestIdKey))
  36. }