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)) }