...
1 package ldredis
2
3 import (
4 "testing"
5
6 "github.com/launchdarkly/go-sdk-common/v3/ldlog"
7 "github.com/launchdarkly/go-sdk-common/v3/ldlogtest"
8 "github.com/launchdarkly/go-server-sdk/v6/subsystems"
9
10 "github.com/stretchr/testify/require"
11 )
12
13 func doStartupLoggingTest(t *testing.T, url string, expectedLogURL string) {
14 mockLog1 := ldlogtest.NewMockLog()
15 mockLog2 := ldlogtest.NewMockLog()
16 defer mockLog1.DumpIfTestFailed(t)
17 defer mockLog2.DumpIfTestFailed(t)
18 var context1, context2 subsystems.BasicClientContext
19 context1.Logging.Loggers = mockLog1.Loggers
20 context2.Logging.Loggers = mockLog2.Loggers
21
22 store1, err := DataStore().URL(url).Build(context1)
23 require.NoError(t, err)
24 _ = store1.Close()
25 mockLog1.AssertMessageMatch(t, true, ldlog.Info, "Using URL: "+expectedLogURL)
26
27 store2, err := DataStore().URL(url).Build(context2)
28 require.NoError(t, err)
29 _ = store2.Close()
30 mockLog2.AssertMessageMatch(t, true, ldlog.Info, "Using URL: "+expectedLogURL)
31 }
32
33 func TestURLAppearsInLogAtStartup(t *testing.T) {
34 doStartupLoggingTest(t, "redis://localhost:6379", "redis://localhost:6379")
35 doStartupLoggingTest(t, "redis://localhost:6379/1", "redis://localhost:6379/1")
36 }
37
38 func TestURLPasswordIsObfuscatedInLog(t *testing.T) {
39 doStartupLoggingTest(t, "redis://username@localhost:6379", "redis://username@localhost:6379")
40 doStartupLoggingTest(t, "redis://username:very-secret-password@localhost:6379", "redis://username:xxxxx@localhost:6379")
41 }
42
View as plain text