github.com/xmidt-org/webpa-common@v1.11.9/tracing/span_test.go (about) 1 package tracing 2 3 import ( 4 "errors" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func testSpanNoError(t *testing.T) { 12 var ( 13 assert = assert.New(t) 14 start = time.Now() 15 16 s = &span{ 17 name: "test", 18 start: start, 19 } 20 ) 21 22 assert.Equal("test", s.Name()) 23 assert.Equal(start, s.Start()) 24 assert.Zero(s.Duration()) 25 assert.Nil(s.Error()) 26 27 assert.True(s.finish(time.Duration(123), nil)) 28 assert.Equal("test", s.Name()) 29 assert.Equal(start, s.Start()) 30 assert.Equal(time.Duration(123), s.Duration()) 31 assert.Nil(s.Error()) 32 33 assert.False(s.finish(time.Duration(456), errors.New("this should not get set"))) 34 assert.Equal("test", s.Name()) 35 assert.Equal(start, s.Start()) 36 assert.Equal(time.Duration(123), s.Duration()) 37 assert.Nil(s.Error()) 38 } 39 40 func testSpanWithError(t *testing.T) { 41 var ( 42 assert = assert.New(t) 43 start = time.Now() 44 expectedError = errors.New("expected") 45 46 s = &span{ 47 name: "test", 48 start: start, 49 } 50 ) 51 52 assert.Equal("test", s.Name()) 53 assert.Equal(start, s.Start()) 54 assert.Zero(s.Duration()) 55 assert.Nil(s.Error()) 56 57 assert.True(s.finish(time.Duration(123), expectedError)) 58 assert.Equal("test", s.Name()) 59 assert.Equal(start, s.Start()) 60 assert.Equal(time.Duration(123), s.Duration()) 61 assert.Equal(expectedError, s.Error()) 62 63 assert.False(s.finish(time.Duration(456), errors.New("this should not get set"))) 64 assert.Equal("test", s.Name()) 65 assert.Equal(start, s.Start()) 66 assert.Equal(time.Duration(123), s.Duration()) 67 assert.Equal(expectedError, s.Error()) 68 } 69 70 func TestSpan(t *testing.T) { 71 t.Run("NoError", testSpanNoError) 72 t.Run("WithError", testSpanWithError) 73 }