package mcpproxy
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
"go.uber.org/zap/zaptest/observer"
)
func TestPrivateRecoveryDoesNotLogRequestOrPanic(t *testing.T) {
gin.SetMode(gin.TestMode)
core, logs := observer.New(zap.ErrorLevel)
router := gin.New()
router.Use(privateRecovery(zap.New(core)))
router.GET("/callback", func(c *gin.Context) { panic("panic-secret") })
req := httptest.NewRequest(http.MethodGet, "/callback?code=code-secret&state=state-secret", nil)
req.Header.Set("Cookie", "session=cookie-secret")
req.Header.Set("Authorization", "Bearer bearer-secret")
response := httptest.NewRecorder()
router.ServeHTTP(response, req)
require.Equal(t, http.StatusInternalServerError, response.Code)
require.Len(t, logs.All(), 1)
require.Equal(t, "request panicked", logs.All()[0].Message)
require.Empty(t, logs.All()[0].Context)
}