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 }