github.com/argoproj/argo-cd/v3@v3.2.1/util/profile/profile_test.go (about)

     1  package profile
     2  
     3  import (
     4  	"net/http"
     5  	"net/http/httptest"
     6  	"os"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestRegisterProfile_FileIsMissing(t *testing.T) {
    13  	mux := http.NewServeMux()
    14  	RegisterProfiler(mux)
    15  
    16  	srv := httptest.NewServer(mux)
    17  	defer srv.Close()
    18  
    19  	resp, err := http.Get(srv.URL + "/debug/pprof/")
    20  	require.NoError(t, err)
    21  	require.Equal(t, http.StatusUnauthorized, resp.StatusCode)
    22  }
    23  
    24  func TestRegisterProfile_FileExist(t *testing.T) {
    25  	mux := http.NewServeMux()
    26  	RegisterProfiler(mux)
    27  
    28  	srv := httptest.NewServer(mux)
    29  	defer srv.Close()
    30  
    31  	f, err := os.CreateTemp(t.TempDir(), "test")
    32  	require.NoError(t, err)
    33  	_, err = f.WriteString("true")
    34  	require.NoError(t, err)
    35  
    36  	oldVal := enableProfilerFilePath
    37  	enableProfilerFilePath = f.Name()
    38  
    39  	resp, err := http.Get(srv.URL + "/debug/pprof/")
    40  	require.NoError(t, err)
    41  	require.Equal(t, http.StatusOK, resp.StatusCode)
    42  
    43  	enableProfilerFilePath = oldVal
    44  	_ = f.Close()
    45  	_ = os.Remove(f.Name())
    46  }