Repository navigation
Expand file tree
/
Copy pathconfig_test.go
More file actions
53 lines (48 loc) · 1.44 KB
/
Copy pathconfig_test.go
File metadata and controls
53 lines (48 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
)
func TestNewConfig_EnvValues(t *testing.T) {
tests := []struct {
name string
brokers string
password string
wantBrokers []string
wantPassword string
}{
{
name: "single broker",
brokers: "a:9092",
password: "secret",
wantBrokers: []string{"a:9092"},
wantPassword: "secret",
},
{
name: "comma-separated brokers and comma in password",
brokers: "a:9092,b:9092",
password: "dummyA,dummyB",
wantBrokers: []string{"a:9092", "b:9092"},
wantPassword: "dummyA,dummyB",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Setenv("CONFIG_FILEPATH", "")
t.Setenv("KAFKA_BROKERS", tt.brokers)
t.Setenv("KAFKA_SASL_ENABLED", "true")
t.Setenv("KAFKA_SASL_USERNAME", "user")
t.Setenv("KAFKA_SASL_PASSWORD", tt.password)
t.Setenv("MINION_CONSUMERGROUPS_ALLOWEDCONSUMERGROUPSTATES", "Stable,Empty")
t.Setenv("MINION_CONNECTIONHEALTHCHECK_PROBEINTERVAL", "45s")
cfg, err := newConfig(zap.NewNop())
require.NoError(t, err)
require.Equal(t, tt.wantBrokers, cfg.Kafka.Brokers)
require.Equal(t, tt.wantPassword, cfg.Kafka.SASL.Password)
require.Equal(t, []string{"Stable", "Empty"}, cfg.Minion.ConsumerGroups.AllowedConsumerGroupStates)
require.Equal(t, 45*time.Second, cfg.Minion.ConnectionHealthCheck.ProbeInterval)
})
}
}