mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
Signed-off-by: yang.xiao <yang.xiao@daocloud.io>
This commit is contained in:
@@ -89,6 +89,11 @@ func (s *Server) Get(ctx context.Context, _ *settingspkg.SettingsQuery) (*settin
|
||||
return nil, err
|
||||
}
|
||||
|
||||
installationID, err := s.mgr.GetInstallationID()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
set := settingspkg.Settings{
|
||||
URL: argoCDSettings.URL,
|
||||
AdditionalURLs: argoCDSettings.AdditionalURLs,
|
||||
@@ -112,6 +117,7 @@ func (s *Server) Get(ctx context.Context, _ *settingspkg.SettingsQuery) (*settin
|
||||
KustomizeVersions: kustomizeVersions,
|
||||
UiCssURL: argoCDSettings.UiCssURL,
|
||||
TrackingMethod: trackingMethod,
|
||||
InstallationID: installationID,
|
||||
ExecEnabled: argoCDSettings.ExecEnabled,
|
||||
AppsInAnyNamespaceEnabled: s.appsInAnyNamespaceEnabled,
|
||||
ImpersonationEnabled: argoCDSettings.ImpersonationEnabled,
|
||||
|
||||
82
server/settings/settings_test.go
Normal file
82
server/settings/settings_test.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
|
||||
"github.com/argoproj/argo-cd/v3/common"
|
||||
"github.com/argoproj/argo-cd/v3/util/settings"
|
||||
)
|
||||
|
||||
const testNamespace = "default"
|
||||
|
||||
func fixtures(data map[string]string) (*fake.Clientset, *settings.SettingsManager) {
|
||||
kubeClient := fake.NewClientset(&corev1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: common.ArgoCDConfigMapName,
|
||||
Namespace: testNamespace,
|
||||
Labels: map[string]string{
|
||||
"app.kubernetes.io/part-of": "argocd",
|
||||
},
|
||||
},
|
||||
Data: data,
|
||||
}, &corev1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "argocd-secret",
|
||||
Namespace: testNamespace,
|
||||
},
|
||||
Data: map[string][]byte{
|
||||
"admin.password": []byte("test"),
|
||||
"server.secretkey": []byte("test"),
|
||||
},
|
||||
})
|
||||
settingsManager := settings.NewSettingsManager(context.Background(), kubeClient, testNamespace)
|
||||
return kubeClient, settingsManager
|
||||
}
|
||||
|
||||
func TestSettingsServer(t *testing.T) {
|
||||
newServer := func(data map[string]string) *Server {
|
||||
_, settingsMgr := fixtures(data)
|
||||
return NewServer(settingsMgr, nil, nil, false, false, false)
|
||||
}
|
||||
|
||||
t.Run("TestGetInstallationID", func(t *testing.T) {
|
||||
settingsServer := newServer(map[string]string{
|
||||
"installationID": "1234567890",
|
||||
})
|
||||
resp, err := settingsServer.Get(t.Context(), nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "1234567890", resp.InstallationID)
|
||||
})
|
||||
|
||||
t.Run("TestGetInstallationIDNotSet", func(t *testing.T) {
|
||||
settingsServer := newServer(map[string]string{})
|
||||
resp, err := settingsServer.Get(t.Context(), nil)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, resp.InstallationID)
|
||||
})
|
||||
|
||||
t.Run("TestGetTrackingMethod", func(t *testing.T) {
|
||||
settingsServer := newServer(map[string]string{
|
||||
"application.resourceTrackingMethod": "annotation+label",
|
||||
})
|
||||
resp, err := settingsServer.Get(t.Context(), nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "annotation+label", resp.TrackingMethod)
|
||||
})
|
||||
|
||||
t.Run("TestGetAppLabelKey", func(t *testing.T) {
|
||||
settingsServer := newServer(map[string]string{
|
||||
"application.instanceLabelKey": "instance",
|
||||
})
|
||||
resp, err := settingsServer.Get(t.Context(), nil)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "instance", resp.AppLabelKey)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user