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 }