|
- 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 TestRelayPanicRecoverConvertsPanicToServerError(t *testing.T) {
- gin.SetMode(gin.TestMode)
- router := gin.New()
- router.Use(RelayPanicRecover())
- router.GET("/", func(c *gin.Context) { panic("upstream exploded") })
-
- response := httptest.NewRecorder()
- router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil))
-
- require.Equal(t, http.StatusInternalServerError, response.Code)
- require.Contains(t, response.Body.String(), "new_api_panic")
- require.Contains(t, response.Body.String(), "upstream exploded")
- }
-
- func TestTurnstileCheckAllowsRequestWhenFeatureIsDisabled(t *testing.T) {
- oldEnabled := common.TurnstileCheckEnabled
- common.TurnstileCheckEnabled = false
- t.Cleanup(func() { common.TurnstileCheckEnabled = oldEnabled })
-
- gin.SetMode(gin.TestMode)
- router := gin.New()
- router.Use(TurnstileCheck())
- 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)
- }
|