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) }