github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/slogger/logger_test.go (about) 1 package slogger 2 3 import ( 4 "errors" 5 "strings" 6 "testing" 7 8 "github.com/mongodb/grip/level" 9 "github.com/mongodb/grip/send" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestLoggerLogf(t *testing.T) { 14 assert := assert.New(t) // nolint 15 sink, err := send.NewInternalLogger("sink", send.LevelInfo{Default: level.Info, Threshold: level.Info}) 16 assert.NoError(err) 17 defer sink.Close() 18 logger := &Logger{Name: "sloggerTest", Appenders: []send.Sender{sink}} 19 20 assert.NoError(err) 21 22 l, errs := logger.Logf(INFO, "foo %s", "bar") 23 assert.True(len(errs) == 0) 24 assert.NotNil(l) 25 assert.Equal(l, sink.GetMessage().Message) 26 } 27 28 func TestLoggerErrorf(t *testing.T) { 29 assert := assert.New(t) // nolint 30 sink, err := send.NewInternalLogger("sink", send.LevelInfo{Default: level.Info, Threshold: level.Info}) 31 assert.NoError(err) 32 defer sink.Close() 33 logger := &Logger{Name: "sloggerTest", Appenders: []send.Sender{sink}} 34 35 err = logger.Errorf(INFO, "foo %s", "bar") 36 assert.Error(err) 37 assert.Equal("foo bar", err.Error()) 38 assert.True(strings.Contains(sink.GetMessage().Rendered, "foo bar")) 39 } 40 41 func TestLoggerStackf(t *testing.T) { 42 assert := assert.New(t) // nolint 43 sink, err := send.NewInternalLogger("sink", send.LevelInfo{Default: level.Info, Threshold: level.Info}) 44 assert.NoError(err) 45 defer sink.Close() 46 logger := &Logger{Name: "sloggerTest", Appenders: []send.Sender{sink}} 47 48 assert.NoError(err) 49 50 l, errs := logger.Stackf(INFO, errors.New("baz"), "foo %s", "bar") 51 assert.True(len(errs) == 0) 52 assert.NotNil(l) 53 54 msg := sink.GetMessage().Rendered 55 assert.True(strings.HasSuffix(msg, "foo bar: baz"), msg) 56 57 }