28 lines
847 B
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)
|
|
}
|
|
}
|