Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

42 wiersze
1.2 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 TestRelayPanicRecoverConvertsPanicToServerError(t *testing.T) {
  11. gin.SetMode(gin.TestMode)
  12. router := gin.New()
  13. router.Use(RelayPanicRecover())
  14. router.GET("/", func(c *gin.Context) { panic("upstream exploded") })
  15. response := httptest.NewRecorder()
  16. router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
  17. require.Equal(t, http.StatusInternalServerError, response.Code)
  18. require.Contains(t, response.Body.String(), "new_api_panic")
  19. require.Contains(t, response.Body.String(), "upstream exploded")
  20. }
  21. func TestTurnstileCheckAllowsRequestWhenFeatureIsDisabled(t *testing.T) {
  22. oldEnabled := common.TurnstileCheckEnabled
  23. common.TurnstileCheckEnabled = false
  24. t.Cleanup(func() { common.TurnstileCheckEnabled = oldEnabled })
  25. gin.SetMode(gin.TestMode)
  26. router := gin.New()
  27. router.Use(TurnstileCheck())
  28. router.GET("/", func(c *gin.Context) { c.Status(http.StatusNoContent) })
  29. response := httptest.NewRecorder()
  30. router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
  31. require.Equal(t, http.StatusNoContent, response.Code)
  32. }