argo-cd/util/cache/cache_test.go
jannfis 1b1df76ef2
chore: Code coverage offensive 03: util/cache (#3335)
* Add dependency for miniredis, used for unit testing Redis cache

* Add more tests
2020-04-02 09:16:42 -07:00

46 lines
1.2 KiB
Go

package cache
import (
"testing"
"time"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
)
func TestAddCacheFlagsToCmd(t *testing.T) {
cache, err := AddCacheFlagsToCmd(&cobra.Command{})()
assert.NoError(t, err)
assert.Equal(t, 24*time.Hour, cache.client.(*redisCache).expiration)
}
func TestCacheClient(t *testing.T) {
client := NewInMemoryCache(60 * time.Second)
cache := NewCache(client)
t.Run("SetItem", func(t *testing.T) {
err := cache.SetItem("foo", "bar", 60*time.Second, false)
assert.NoError(t, err)
})
t.Run("GetItem", func(t *testing.T) {
var val string
err := cache.GetItem("foo", &val)
assert.NoError(t, err)
assert.Equal(t, "bar", val)
})
t.Run("DeleteItem", func(t *testing.T) {
err := cache.SetItem("foo", "bar", 0, true)
assert.NoError(t, err)
var val string
err = cache.GetItem("foo", &val)
assert.Error(t, err)
assert.Empty(t, val)
})
t.Run("Check for nil items", func(t *testing.T) {
err := cache.SetItem("foo", nil, 0, false)
assert.Error(t, err)
assert.Contains(t, err.Error(), "cannot set item")
err = cache.GetItem("foo", nil)
assert.Error(t, err)
assert.Contains(t, err.Error(), "cannot get item")
})
}