github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/slogger/stack_error_test.go (about)

     1  package slogger
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/mongodb/grip/message"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestSlackError(t *testing.T) {
    13  	assert := assert.New(t)
    14  
    15  	msg := NewStackError("foo %s", "bar")
    16  	assert.Implements((*message.Composer)(nil), msg)
    17  	assert.Implements((*error)(nil), msg)
    18  	assert.True(len(msg.Stacktrace) > 0)
    19  
    20  	assert.True(strings.HasPrefix(msg.String(), "foo bar"))
    21  
    22  	assert.Equal("", NewStackError("").message)
    23  
    24  	assert.Equal(NewStackError("").String(), NewStackError("").Error())
    25  	assert.Equal(msg.String(), msg.Error())
    26  
    27  	// the raw structure always has stack data, generated in the
    28  	// constructor, even if the message is nil.
    29  	assert.True(len(fmt.Sprintf("%v", NewStackError("").Raw())) > 10)
    30  }