75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"galaxy/lobby/internal/config"
|
|
"galaxy/redisconn"
|
|
|
|
"github.com/alicebob/miniredis/v2"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func newTestRedisCfg(addr string) config.RedisConfig {
|
|
return config.RedisConfig{
|
|
Conn: redisconn.Config{
|
|
MasterAddr: addr,
|
|
Password: "test",
|
|
OperationTimeout: time.Second,
|
|
},
|
|
}
|
|
}
|
|
|
|
func TestPingRedisSucceedsAgainstMiniredis(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
server := miniredis.RunT(t)
|
|
|
|
redisCfg := newTestRedisCfg(server.Addr())
|
|
client := newRedisClient(redisCfg)
|
|
t.Cleanup(func() { _ = client.Close() })
|
|
|
|
require.NoError(t, pingRedis(context.Background(), redisCfg, client))
|
|
}
|
|
|
|
func TestPingRedisReturnsErrorWhenClosed(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
server := miniredis.RunT(t)
|
|
|
|
redisCfg := newTestRedisCfg(server.Addr())
|
|
client := newRedisClient(redisCfg)
|
|
require.NoError(t, client.Close())
|
|
|
|
err := pingRedis(context.Background(), redisCfg, client)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestPingRedisNilClient(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
err := pingRedis(context.Background(), newTestRedisCfg("127.0.0.1:0"), nil)
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), "nil client")
|
|
}
|
|
|
|
func TestInstrumentRedisClientNilClient(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
err := instrumentRedisClient(nil, nil)
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), "nil client")
|
|
}
|
|
|
|
func TestInstrumentRedisClientNilTelemetryIsNoop(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
server := miniredis.RunT(t)
|
|
client := newRedisClient(newTestRedisCfg(server.Addr()))
|
|
t.Cleanup(func() { _ = client.Close() })
|
|
|
|
require.NoError(t, instrumentRedisClient(client, nil))
|
|
}
|