fix: make caching options more explicit (#2966)

Signed-off-by: Keith Zantow <kzantow@gmail.com>
This commit is contained in:
Keith Zantow
2024-06-14 18:45:48 +00:00
committed by GitHub
parent 70098e20bb
commit af3aaa0397
5 changed files with 174 additions and 21 deletions
+2 -1
View File
@@ -36,7 +36,8 @@ func GetManager() Manager {
return manager
}
// SetManager sets the global cache manager, which is used to instantiate all caches
// SetManager sets the global cache manager, which is used to instantiate all caches.
// Setting this to nil disables caching.
func SetManager(m Manager) {
if m == nil {
manager = &bypassedCache{}
+11
View File
@@ -2,6 +2,7 @@ package cache
import (
"testing"
"time"
"github.com/stretchr/testify/require"
)
@@ -10,8 +11,18 @@ func Test_SetManager(t *testing.T) {
original := GetManager()
defer SetManager(original)
SetManager(nil)
require.NotNil(t, GetManager())
require.IsType(t, &bypassedCache{}, GetManager())
SetManager(NewInMemory(0))
require.NotNil(t, GetManager())
require.IsType(t, &bypassedCache{}, GetManager())
SetManager(NewInMemory(1 * time.Hour))
require.NotNil(t, GetManager())
require.IsType(t, &filesystemCache{}, GetManager())
+3
View File
@@ -8,6 +8,9 @@ import (
// NewInMemory returns an in-memory only cache manager
func NewInMemory(ttl time.Duration) Manager {
if ttl <= 0 {
return &bypassedCache{}
}
return &filesystemCache{
dir: "",
fs: afero.NewMemMapFs(),