github.com/argoproj/argo-cd/v3@v3.2.1/server/settings/settings_test.go (about)

     1  package settings
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  	corev1 "k8s.io/api/core/v1"
    10  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    11  	"k8s.io/client-go/kubernetes/fake"
    12  
    13  	"github.com/argoproj/argo-cd/v3/common"
    14  	"github.com/argoproj/argo-cd/v3/util/settings"
    15  )
    16  
    17  const testNamespace = "default"
    18  
    19  func fixtures(data map[string]string) (*fake.Clientset, *settings.SettingsManager) {
    20  	kubeClient := fake.NewClientset(&corev1.ConfigMap{
    21  		ObjectMeta: metav1.ObjectMeta{
    22  			Name:      common.ArgoCDConfigMapName,
    23  			Namespace: testNamespace,
    24  			Labels: map[string]string{
    25  				"app.kubernetes.io/part-of": "argocd",
    26  			},
    27  		},
    28  		Data: data,
    29  	}, &corev1.Secret{
    30  		ObjectMeta: metav1.ObjectMeta{
    31  			Name:      "argocd-secret",
    32  			Namespace: testNamespace,
    33  		},
    34  		Data: map[string][]byte{
    35  			"admin.password":   []byte("test"),
    36  			"server.secretkey": []byte("test"),
    37  		},
    38  	})
    39  	settingsManager := settings.NewSettingsManager(context.Background(), kubeClient, testNamespace)
    40  	return kubeClient, settingsManager
    41  }
    42  
    43  func TestSettingsServer(t *testing.T) {
    44  	newServer := func(data map[string]string) *Server {
    45  		_, settingsMgr := fixtures(data)
    46  		return NewServer(settingsMgr, nil, nil, false, false, false)
    47  	}
    48  
    49  	t.Run("TestGetInstallationID", func(t *testing.T) {
    50  		settingsServer := newServer(map[string]string{
    51  			"installationID": "1234567890",
    52  		})
    53  		resp, err := settingsServer.Get(t.Context(), nil)
    54  		require.NoError(t, err)
    55  		assert.Equal(t, "1234567890", resp.InstallationID)
    56  	})
    57  
    58  	t.Run("TestGetInstallationIDNotSet", func(t *testing.T) {
    59  		settingsServer := newServer(map[string]string{})
    60  		resp, err := settingsServer.Get(t.Context(), nil)
    61  		require.NoError(t, err)
    62  		assert.Empty(t, resp.InstallationID)
    63  	})
    64  
    65  	t.Run("TestGetTrackingMethod", func(t *testing.T) {
    66  		settingsServer := newServer(map[string]string{
    67  			"application.resourceTrackingMethod": "annotation+label",
    68  		})
    69  		resp, err := settingsServer.Get(t.Context(), nil)
    70  		require.NoError(t, err)
    71  		assert.Equal(t, "annotation+label", resp.TrackingMethod)
    72  	})
    73  
    74  	t.Run("TestGetAppLabelKey", func(t *testing.T) {
    75  		settingsServer := newServer(map[string]string{
    76  			"application.instanceLabelKey": "instance",
    77  		})
    78  		resp, err := settingsServer.Get(t.Context(), nil)
    79  		require.NoError(t, err)
    80  		assert.Equal(t, "instance", resp.AppLabelKey)
    81  	})
    82  }