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  }