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  }