feat: runtime manager
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
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))
|
||||
}
|
||||
Reference in New Issue
Block a user