83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"galaxy/redisconn"
|
|
"galaxy/rtmanager/internal/config"
|
|
|
|
"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())
|
|
|
|
require.Error(t, pingRedis(context.Background(), redisCfg, client))
|
|
}
|
|
|
|
func TestNewDockerClientHonoursHostOverride(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
docker, err := newDockerClient(config.DockerConfig{
|
|
Host: "unix:///var/run/docker.sock",
|
|
APIVersion: "1.43",
|
|
Network: "galaxy-net",
|
|
LogDriver: "json-file",
|
|
PullPolicy: config.ImagePullPolicyIfMissing,
|
|
})
|
|
require.NoError(t, err)
|
|
require.NotNil(t, docker)
|
|
require.NoError(t, docker.Close())
|
|
}
|
|
|
|
func TestPingDockerRejectsNilClient(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
require.Error(t, pingDocker(context.Background(), nil, time.Second))
|
|
}
|
|
|
|
func TestPingDockerRejectsNonPositiveTimeout(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
docker, err := newDockerClient(config.DockerConfig{
|
|
Host: "unix:///var/run/docker.sock",
|
|
Network: "galaxy-net",
|
|
LogDriver: "json-file",
|
|
})
|
|
require.NoError(t, err)
|
|
t.Cleanup(func() { _ = docker.Close() })
|
|
|
|
require.Error(t, pingDocker(context.Background(), docker, 0))
|
|
}
|