Skip to content

Commit 333915d

Browse files
committed
refactor: refactor Redis Sentinel setup for improved configuration flexibility
- Refactor `setupRedisSentinelContainer` to accept `masterHost` and `masterPort` as parameters - Update environment variables in `setupRedisSentinelContainer` to use the provided `masterHost` and `masterPort` - Add setup for Redis master container in `TestRedisSentinel` - Add setup for Redis sentinel container in `TestRedisSentinel` - Update variable names in `TestRedisSentinel` to reflect the new setup process Signed-off-by: appleboy <[email protected]>
1 parent 647d1aa commit 333915d

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

redis_test.go

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,12 @@ func (m mockMessage) Bytes() []byte {
3333
return []byte(m.Message)
3434
}
3535

36-
func setupRedisSentinelContainer(ctx context.Context, t *testing.T) (testcontainers.Container, string) {
36+
func setupRedisSentinelContainer(
37+
ctx context.Context,
38+
t *testing.T,
39+
masterHost string,
40+
masterPort string,
41+
) (testcontainers.Container, string) {
3742
req := testcontainers.ContainerRequest{
3843
Image: "bitnami/redis-sentinel:7.4-debian-12",
3944
ExposedPorts: []string{
@@ -43,9 +48,10 @@ func setupRedisSentinelContainer(ctx context.Context, t *testing.T) (testcontain
4348
[]string{"redis-cli", "-h", "localhost", "-p", "26379", "ping"},
4449
),
4550
Env: map[string]string{
46-
"REDIS_MASTER_HOST": "redis",
47-
"REDIS_MASTER_SET": "mymaster",
48-
"REDIS_SENTINEL_QUORUM": "1",
51+
"REDIS_MASTER_HOST": masterHost,
52+
"REDIS_MASTER_PORT_NUMBER": masterPort,
53+
"REDIS_MASTER_SET": "mymaster",
54+
"REDIS_SENTINEL_QUORUM": "1",
4955
},
5056
}
5157
redisC, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
@@ -242,20 +248,29 @@ func TestRedisSentinel(t *testing.T) {
242248
t.Helper()
243249

244250
ctx := context.Background()
245-
redisC, _ := setupRedisSentinelContainer(ctx, t)
251+
252+
// create redis master
253+
redisC, _ := setupRedisContainer(ctx, t)
246254
defer testcontainers.CleanupContainer(t, redisC)
255+
masterPort, err := redisC.MappedPort(ctx, "6379")
256+
assert.NoError(t, err)
257+
masterHost, err := redisC.Host(ctx)
258+
assert.NoError(t, err)
259+
260+
sentinelC, _ := setupRedisSentinelContainer(ctx, t, masterHost, masterPort.Port())
261+
defer testcontainers.CleanupContainer(t, sentinelC)
247262

248-
masterPort, err := redisC.MappedPort(ctx, "26379")
263+
sentinelPort, err := redisC.MappedPort(ctx, "26379")
249264
assert.NoError(t, err)
250265

251-
hostIP, err := redisC.Host(ctx)
266+
sentinelHost, err := redisC.Host(ctx)
252267
assert.NoError(t, err)
253268

254269
m := &mockMessage{
255270
Message: "foo",
256271
}
257272

258-
masterName := fmt.Sprintf("%s:%s", hostIP, masterPort.Port())
273+
masterName := fmt.Sprintf("%s:%s", sentinelHost, sentinelPort.Port())
259274

260275
hosts := []string{masterName}
261276

0 commit comments

Comments
 (0)