...

Source file src/github.com/launchdarkly/go-server-sdk/v6/ldcomponents/logging_configuration_builder_test.go

Documentation: github.com/launchdarkly/go-server-sdk/v6/ldcomponents

     1  package ldcomponents
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/launchdarkly/go-sdk-common/v3/ldlog"
     8  	"github.com/launchdarkly/go-sdk-common/v3/ldlogtest"
     9  	"github.com/launchdarkly/go-server-sdk/v6/subsystems"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestLoggingConfigurationBuilder(t *testing.T) {
    15  	basicConfig := subsystems.BasicClientContext{}
    16  
    17  	t.Run("defaults", func(t *testing.T) {
    18  		c, err := Logging().Build(basicConfig)
    19  		assert.Nil(t, err)
    20  		assert.False(t, c.LogEvaluationErrors)
    21  		assert.False(t, c.LogContextKeyInErrors)
    22  	})
    23  
    24  	t.Run("LogDataSourceOutageAsErrorAfter", func(t *testing.T) {
    25  		c, err := Logging().LogDataSourceOutageAsErrorAfter(time.Hour).Build(basicConfig)
    26  		assert.Nil(t, err)
    27  		assert.Equal(t, time.Hour, c.LogDataSourceOutageAsErrorAfter)
    28  	})
    29  
    30  	t.Run("LogEvaluationErrors", func(t *testing.T) {
    31  		c, err := Logging().LogEvaluationErrors(true).Build(basicConfig)
    32  		assert.Nil(t, err)
    33  		assert.True(t, c.LogEvaluationErrors)
    34  	})
    35  
    36  	t.Run("LogContextKeyInErrors", func(t *testing.T) {
    37  		c, err := Logging().LogContextKeyInErrors(true).Build(basicConfig)
    38  		assert.Nil(t, err)
    39  		assert.True(t, c.LogContextKeyInErrors)
    40  	})
    41  
    42  	t.Run("Loggers", func(t *testing.T) {
    43  		mockLoggers := ldlogtest.NewMockLog()
    44  		c, err := Logging().Loggers(mockLoggers.Loggers).Build(basicConfig)
    45  		assert.Nil(t, err)
    46  		assert.Equal(t, mockLoggers.Loggers, c.Loggers)
    47  	})
    48  
    49  	t.Run("MinLevel", func(t *testing.T) {
    50  		mockLoggers := ldlogtest.NewMockLog()
    51  		c, err := Logging().Loggers(mockLoggers.Loggers).MinLevel(ldlog.Error).Build(basicConfig)
    52  		assert.Nil(t, err)
    53  		c.Loggers.Info("suppress this message")
    54  		c.Loggers.Error("log this message")
    55  		assert.Len(t, mockLoggers.GetOutput(ldlog.Info), 0)
    56  		assert.Equal(t, []string{"log this message"}, mockLoggers.GetOutput(ldlog.Error))
    57  	})
    58  
    59  	t.Run("NoLogging", func(t *testing.T) {
    60  		c, err := NoLogging().Build(basicConfig)
    61  		assert.Nil(t, err)
    62  		assert.Equal(t, ldlog.NewDisabledLoggers(), c.Loggers)
    63  	})
    64  
    65  	t.Run("nil safety", func(t *testing.T) {
    66  		var b *LoggingConfigurationBuilder = nil
    67  		b = b.LogContextKeyInErrors(true).LogDataSourceOutageAsErrorAfter(0).LogEvaluationErrors(true).
    68  			Loggers(ldlog.NewDefaultLoggers()).MinLevel(ldlog.Debug)
    69  		_, _ = b.Build(subsystems.BasicClientContext{})
    70  	})
    71  }
    72  

View as plain text