package repository import ( "testing" "time" "github.com/Wei-Shaw/sub2api/internal/config" "github.com/stretchr/testify/require" ) func TestBuildRedisOptions(t *testing.T) { cfg := &config.Config{ Redis: config.RedisConfig{ Host: "localhost", Port: 6379, Password: "secret", DB: 2, DialTimeoutSeconds: 5, ReadTimeoutSeconds: 3, WriteTimeoutSeconds: 4, PoolSize: 100, MinIdleConns: 10, }, } opts := buildRedisOptions(cfg) require.Equal(t, "localhost:6379", opts.Addr) require.Equal(t, "secret", opts.Password) require.Equal(t, 2, opts.DB) require.Equal(t, 5*time.Second, opts.DialTimeout) require.Equal(t, 3*time.Second, opts.ReadTimeout) require.Equal(t, 4*time.Second, opts.WriteTimeout) require.Equal(t, 100, opts.PoolSize) require.Equal(t, 10, opts.MinIdleConns) require.Nil(t, opts.TLSConfig) // Test case with TLS enabled cfgTLS := &config.Config{ Redis: config.RedisConfig{ Host: "localhost", EnableTLS: true, }, } optsTLS := buildRedisOptions(cfgTLS) require.NotNil(t, optsTLS.TLSConfig) require.Equal(t, "localhost", optsTLS.TLSConfig.ServerName) }