thread-master/apps/backend/internal/module/ai/models_cache_redis_test.go

28 lines
847 B
Go

package ai
import (
"strings"
"testing"
)
func TestRedisModelsCacheKeysAreNamespacedAndCoLocated(t *testing.T) {
cache := &RedisModelsCache{namespace: normalizeRedisNamespace("tenant:v2")}
key := ModelsCacheKey{Provider: ProviderXAI, CredentialFingerprint: strings.Repeat("a", 64)}
valueKey := cache.valueKey(key)
lockKey := cache.lockKey(key)
wantTag := "{" + ProviderXAI + ":" + strings.Repeat("a", 64) + "}"
if !strings.HasPrefix(valueKey, "tenant:v2:ai:models:") || !strings.Contains(valueKey, wantTag) {
t.Fatalf("unexpected value key %q", valueKey)
}
if !strings.Contains(lockKey, wantTag) {
t.Fatalf("lock key is not colocated with value key: %q", lockKey)
}
}
func TestRedisModelsCacheDefaultNamespace(t *testing.T) {
if got := normalizeRedisNamespace(""); got != "haixun:dev:v1" {
t.Fatalf("namespace=%q", got)
}
}