55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package heartbeat
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
func TestInitHeartBeat_NilRedis(t *testing.T) {
|
|
ctx := context.Background()
|
|
_, err := InitHeartBeat(ctx, nil, "test")
|
|
if err == nil {
|
|
t.Error("expected error for nil redis")
|
|
}
|
|
}
|
|
|
|
func TestHeartbeatKeyFormat(t *testing.T) {
|
|
key := "timer:{myapp}:heartbeat_cluster"
|
|
|
|
if !strings.Contains(key, "{myapp}") {
|
|
t.Errorf("heartbeat key missing hash tag: %s", key)
|
|
}
|
|
|
|
tag := extractHashTag(key)
|
|
if tag != "myapp" {
|
|
t.Errorf("unexpected hash tag: %q", tag)
|
|
}
|
|
}
|
|
|
|
func TestHeartbeatKeyFormat_Once(t *testing.T) {
|
|
key := "timer:{app_v2}:heartbeat_once"
|
|
|
|
if !strings.Contains(key, "{app_v2}") {
|
|
t.Errorf("heartbeat key missing hash tag: %s", key)
|
|
}
|
|
|
|
tag := extractHashTag(key)
|
|
if tag != "app_v2" {
|
|
t.Errorf("unexpected hash tag: %q", tag)
|
|
}
|
|
}
|
|
|
|
func extractHashTag(key string) string {
|
|
start := strings.Index(key, "{")
|
|
end := strings.Index(key, "}")
|
|
if start >= 0 && end > start {
|
|
return key[start+1 : end]
|
|
}
|
|
return ""
|
|
}
|
|
|
|
var _ redis.UniversalClient
|