package controller import ( "net/http" "net/http/httptest" "testing" "github.com/QuantumNous/new-api/common" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" ) func TestGetOptionsOmitsSensitiveSuffixes(t *testing.T) { common.OptionMapRWMutex.Lock() oldOptions := common.OptionMap common.OptionMap = map[string]string{ "PublicOption": "visible", "AccessToken": "secret", "WebhookSecret": "secret", "ProviderKey": "secret", "lowercase_secret": "secret", "service_api_key": "secret", } common.OptionMapRWMutex.Unlock() t.Cleanup(func() { common.OptionMapRWMutex.Lock() common.OptionMap = oldOptions common.OptionMapRWMutex.Unlock() }) router := gin.New() router.GET("/", GetOptions) response := httptest.NewRecorder() router.ServeHTTP(response, httptest.NewRequest(http.MethodGet, "/", nil)) require.Equal(t, http.StatusOK, response.Code) body := response.Body.String() require.Contains(t, body, "PublicOption") require.NotContains(t, body, "AccessToken") require.NotContains(t, body, "WebhookSecret") require.NotContains(t, body, "ProviderKey") require.NotContains(t, body, "lowercase_secret") require.NotContains(t, body, "service_api_key") }