gitops-engine/pkg/cache/settings_test.go

75 lines
2.3 KiB
Go

package cache
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"k8s.io/client-go/rest"
"github.com/argoproj/gitops-engine/pkg/utils/kube/kubetest"
)
func TestSetSettings(t *testing.T) {
cache := NewClusterCache(&rest.Config{}, SetKubectl(&kubetest.MockKubectlCmd{}))
updatedHealth := &noopSettings{}
updatedFilter := &noopSettings{}
cache.Invalidate(SetSettings(Settings{ResourceHealthOverride: updatedHealth, ResourcesFilter: updatedFilter}))
assert.Equal(t, updatedFilter, cache.settings.ResourcesFilter)
assert.Equal(t, updatedHealth, cache.settings.ResourceHealthOverride)
}
func TestSetConfig(t *testing.T) {
cache := NewClusterCache(&rest.Config{}, SetKubectl(&kubetest.MockKubectlCmd{}))
updatedConfig := &rest.Config{Host: "http://newhost"}
cache.Invalidate(SetConfig(updatedConfig))
assert.Equal(t, updatedConfig, cache.config)
}
func TestSetNamespaces(t *testing.T) {
cache := NewClusterCache(&rest.Config{}, SetKubectl(&kubetest.MockKubectlCmd{}), SetNamespaces([]string{"default"}))
updatedNamespaces := []string{"updated"}
cache.Invalidate(SetNamespaces(updatedNamespaces))
assert.ElementsMatch(t, updatedNamespaces, cache.namespaces)
}
func TestSetResyncTimeout(t *testing.T) {
cache := NewClusterCache(&rest.Config{})
assert.Equal(t, defaultClusterResyncTimeout, cache.syncStatus.resyncTimeout)
timeout := 1 * time.Hour
cache.Invalidate(SetResyncTimeout(timeout))
assert.Equal(t, timeout, cache.syncStatus.resyncTimeout)
}
func TestSetWatchResyncTimeout(t *testing.T) {
cache := NewClusterCache(&rest.Config{})
assert.Equal(t, defaultWatchResyncTimeout, cache.watchResyncTimeout)
timeout := 30 * time.Minute
cache = NewClusterCache(&rest.Config{}, SetWatchResyncTimeout(timeout))
assert.Equal(t, timeout, cache.watchResyncTimeout)
}
func TestSetBatchEventsProcessing(t *testing.T) {
cache := NewClusterCache(&rest.Config{})
assert.False(t, cache.batchEventsProcessing)
cache.Invalidate(SetBatchEventsProcessing(true))
assert.True(t, cache.batchEventsProcessing)
}
func TestSetEventsProcessingInterval(t *testing.T) {
cache := NewClusterCache(&rest.Config{})
assert.Equal(t, defaultEventProcessingInterval, cache.eventProcessingInterval)
interval := 1 * time.Second
cache.Invalidate(SetEventProcessingInterval(interval))
assert.Equal(t, interval, cache.eventProcessingInterval)
}