github.com/argoproj/argo-cd/v2@v2.10.5/util/cache/redis_hook_test.go (about) 1 package cache 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/alicebob/miniredis/v2" 8 "github.com/stretchr/testify/assert" 9 10 "github.com/redis/go-redis/v9" 11 ) 12 13 func Test_ReconnectCallbackHookCalled(t *testing.T) { 14 mr, err := miniredis.Run() 15 if err != nil { 16 panic(err) 17 } 18 defer mr.Close() 19 20 called := false 21 hook := NewArgoRedisHook(func() { 22 called = true 23 }) 24 25 faultyDNSRedisClient := redis.NewClient(&redis.Options{Addr: "invalidredishost.invalid:12345"}) 26 faultyDNSRedisClient.AddHook(hook) 27 28 faultyDNSClient := NewRedisCache(faultyDNSRedisClient, 60*time.Second, RedisCompressionNone) 29 err = faultyDNSClient.Set(&Item{Key: "baz", Object: "foo"}) 30 assert.Equal(t, called, true) 31 assert.Error(t, err) 32 } 33 34 func Test_ReconnectCallbackHookNotCalled(t *testing.T) { 35 mr, err := miniredis.Run() 36 if err != nil { 37 panic(err) 38 } 39 defer mr.Close() 40 41 called := false 42 hook := NewArgoRedisHook(func() { 43 called = true 44 }) 45 46 redisClient := redis.NewClient(&redis.Options{Addr: mr.Addr()}) 47 redisClient.AddHook(hook) 48 client := NewRedisCache(redisClient, 60*time.Second, RedisCompressionNone) 49 50 err = client.Set(&Item{Key: "foo", Object: "bar"}) 51 assert.Equal(t, called, false) 52 assert.NoError(t, err) 53 }