package cache import ( "testing" "github.com/argoproj/gitops-engine/pkg/cache" "github.com/argoproj/gitops-engine/pkg/cache/mocks" "github.com/stretchr/testify/mock" appv1 "github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1" ) func TestHandleModEvent_HasChanges(t *testing.T) { clusterCache := &mocks.ClusterCache{} clusterCache.On("Invalidate", mock.Anything, mock.Anything).Return(nil).Once() clusterCache.On("EnsureSynced").Return(nil).Once() clustersCache := liveStateCache{ clusters: map[string]cache.ClusterCache{ "https://mycluster": clusterCache, }, } clustersCache.handleModEvent(&appv1.Cluster{ Server: "https://mycluster", Config: appv1.ClusterConfig{Username: "foo"}, }, &appv1.Cluster{ Server: "https://mycluster", Config: appv1.ClusterConfig{Username: "bar"}, Namespaces: []string{"default"}, }) } func TestHandleModEvent_NoChanges(t *testing.T) { clusterCache := &mocks.ClusterCache{} clusterCache.On("Invalidate", mock.Anything).Panic("should not invalidate") clusterCache.On("EnsureSynced").Return(nil).Panic("should not re-sync") clustersCache := liveStateCache{ clusters: map[string]cache.ClusterCache{ "https://mycluster": clusterCache, }, } clustersCache.handleModEvent(&appv1.Cluster{ Server: "https://mycluster", Config: appv1.ClusterConfig{Username: "bar"}, }, &appv1.Cluster{ Server: "https://mycluster", Config: appv1.ClusterConfig{Username: "bar"}, }) }