Add cache configuration to cli
Change-Id: I22b7eb9bd9a2fb9e7106ff20487e285638c5320f
diff --git a/service/cache_test.go b/service/cache_test.go
index 037f0b8..9288660 100644
--- a/service/cache_test.go
+++ b/service/cache_test.go
@@ -5,36 +5,37 @@
"testing"
"time"
+ "github.com/korap/korap-mcp/config"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestDefaultCacheConfig(t *testing.T) {
- config := DefaultCacheConfig()
+ cacheConfig := config.DefaultCacheConfig()
- assert.True(t, config.Enabled)
- assert.Equal(t, 5*time.Minute, config.DefaultTTL)
- assert.Equal(t, 2*time.Minute, config.SearchTTL)
- assert.Equal(t, 15*time.Minute, config.MetadataTTL)
- assert.Equal(t, 1000, config.MaxSize)
+ assert.True(t, cacheConfig.Enabled)
+ assert.Equal(t, "5m", cacheConfig.DefaultTTL)
+ assert.Equal(t, "2m", cacheConfig.SearchTTL)
+ assert.Equal(t, "15m", cacheConfig.MetadataTTL)
+ assert.Equal(t, 1000, cacheConfig.MaxSize)
}
func TestNewCache(t *testing.T) {
tests := []struct {
name string
- config CacheConfig
+ config *config.CacheConfig
expectError bool
expectNilCache bool
}{
{
name: "enabled cache",
- config: DefaultCacheConfig(),
+ config: config.DefaultCacheConfig(),
expectError: false,
expectNilCache: false,
},
{
name: "disabled cache",
- config: CacheConfig{
+ config: &config.CacheConfig{
Enabled: false,
},
expectError: false,
@@ -42,11 +43,11 @@
},
{
name: "custom configuration",
- config: CacheConfig{
+ config: &config.CacheConfig{
Enabled: true,
- DefaultTTL: 1 * time.Minute,
- SearchTTL: 30 * time.Second,
- MetadataTTL: 5 * time.Minute,
+ DefaultTTL: "1m",
+ SearchTTL: "30s",
+ MetadataTTL: "5m",
MaxSize: 500,
},
expectError: false,
@@ -78,7 +79,7 @@
}
func TestCacheGetSet(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
ctx := context.Background()
@@ -99,7 +100,7 @@
}
func TestCacheExpiry(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
ctx := context.Background()
@@ -125,7 +126,7 @@
}
func TestCacheDelete(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
ctx := context.Background()
@@ -147,7 +148,7 @@
}
func TestCacheClear(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
ctx := context.Background()
@@ -179,7 +180,7 @@
}
func TestCacheStats(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
ctx := context.Background()
@@ -203,8 +204,8 @@
}
func TestCacheStatsDisabled(t *testing.T) {
- config := CacheConfig{Enabled: false}
- cache, err := NewCache(config)
+ cacheConfig := &config.CacheConfig{Enabled: false}
+ cache, err := NewCache(cacheConfig)
require.NoError(t, err)
stats := cache.Stats()
@@ -213,8 +214,8 @@
}
func TestCacheDisabled(t *testing.T) {
- config := CacheConfig{Enabled: false}
- cache, err := NewCache(config)
+ cacheConfig := &config.CacheConfig{Enabled: false}
+ cache, err := NewCache(cacheConfig)
require.NoError(t, err)
ctx := context.Background()
@@ -238,7 +239,7 @@
}
func TestGenerateCacheKey(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
tests := []struct {
@@ -304,7 +305,7 @@
}
func TestCacheKeyDeterministic(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
// Test that map parameter order doesn't affect cache key generation
@@ -341,8 +342,8 @@
}
func TestGetTTLForEndpoint(t *testing.T) {
- config := DefaultCacheConfig()
- cache, err := NewCache(config)
+ cacheConfig := config.DefaultCacheConfig()
+ cache, err := NewCache(cacheConfig)
require.NoError(t, err)
tests := []struct {
@@ -353,42 +354,42 @@
{
name: "search endpoint",
endpoint: "/api/v1/search",
- expected: config.SearchTTL,
+ expected: cacheConfig.GetSearchTTL(),
},
{
name: "query endpoint",
endpoint: "/query",
- expected: config.SearchTTL,
+ expected: cacheConfig.GetSearchTTL(),
},
{
name: "corpus endpoint",
endpoint: "/corpus",
- expected: config.MetadataTTL,
+ expected: cacheConfig.GetMetadataTTL(),
},
{
name: "metadata endpoint",
endpoint: "/metadata",
- expected: config.MetadataTTL,
+ expected: cacheConfig.GetMetadataTTL(),
},
{
name: "statistics endpoint",
endpoint: "/statistics",
- expected: config.MetadataTTL,
+ expected: cacheConfig.GetMetadataTTL(),
},
{
name: "info endpoint",
endpoint: "/info",
- expected: config.MetadataTTL,
+ expected: cacheConfig.GetMetadataTTL(),
},
{
name: "other endpoint",
endpoint: "/other",
- expected: config.DefaultTTL,
+ expected: cacheConfig.GetDefaultTTL(),
},
{
name: "case insensitive",
endpoint: "/API/V1/SEARCH",
- expected: config.SearchTTL,
+ expected: cacheConfig.GetSearchTTL(),
},
}
@@ -423,7 +424,7 @@
}
func TestCacheClose(t *testing.T) {
- cache, err := NewCache(DefaultCacheConfig())
+ cache, err := NewCache(config.DefaultCacheConfig())
require.NoError(t, err)
// Add some data
@@ -435,7 +436,7 @@
assert.NoError(t, err)
// Disabled cache close should also not error
- disabledCache, err := NewCache(CacheConfig{Enabled: false})
+ disabledCache, err := NewCache(&config.CacheConfig{Enabled: false})
require.NoError(t, err)
err = disabledCache.Close()