Files
redis/client_test.go
T
2026-08-31 11:41:11 +08:00

50 lines
1.3 KiB
Go

package redis
import (
"sync"
"testing"
"git.zhangdeman.cn/zhangdeman/redis/define"
"go.uber.org/zap"
)
func TestAddClientKeepsMasterAndSlaveSeparate(t *testing.T) {
client := &OwnClient{
lock: &sync.RWMutex{},
instanceTable: map[string]*define.ClientInfo{},
whiteCommandTable: map[string]bool{},
logger: zap.NewNop(),
}
err := client.AddClient("main", zap.NewNop(), &define.Config{
Master: &define.Options{Addr: "master.example:6379"},
Slave: &define.Options{Addr: "slave.example:6379"},
})
if err != nil {
t.Fatal(err)
}
info := client.GetRealClient("main")
if info.MasterClient() == nil || info.MasterClient().Options().Addr != "master.example:6379" {
t.Fatal("master connection was overwritten")
}
if info.SlaveClient() == nil || info.SlaveClient().Options().Addr != "slave.example:6379" {
t.Fatal("slave connection was not retained")
}
_ = info.MasterClient().Close()
_ = info.SlaveClient().Close()
}
func TestNewClientPassesContextTimeoutEnabled(t *testing.T) {
client := &OwnClient{}
redisClient := client.newClient(&define.Options{
Addr: "127.0.0.1:6379",
ContextTimeoutEnabled: true,
})
t.Cleanup(func() {
_ = redisClient.Close()
})
if !redisClient.Options().ContextTimeoutEnabled {
t.Fatal("context timeout option was not passed to go-redis")
}
}