github.com/mdaxf/iac@v0.0.0-20240519030858-58a061660378/health/options_test.go (about)

     1  package health
     2  
     3  import (
     4  	//"fmt"
     5  	"runtime"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/mock"
    10  	"github.com/stretchr/testify/require"
    11  	"go.opentelemetry.io/otel/trace"
    12  )
    13  
    14  func TestWithChecks(t *testing.T) {
    15  	h1, err := New()
    16  	require.NoError(t, err)
    17  	assert.Len(t, h1.checks, 0)
    18  
    19  	h2, err := New(WithChecks(Config{
    20  		Name: "foo",
    21  	}, Config{
    22  		Name: "bar",
    23  	}))
    24  	require.NoError(t, err)
    25  	assert.Len(t, h2.checks, 2)
    26  
    27  	_, err = New(WithChecks(Config{
    28  		Name: "foo",
    29  	}, Config{
    30  		Name: "foo",
    31  	}))
    32  	require.Error(t, err)
    33  }
    34  
    35  type mockTracerProvider struct {
    36  	mock.Mock
    37  }
    38  
    39  // tracerProvider implements trace.TracerProvider.
    40  func (*mockTracerProvider) tracerProvider() {
    41  	panic("unimplemented")
    42  }
    43  
    44  func (m *mockTracerProvider) Tracer(instrumentationName string, opts ...trace.TracerOption) trace.Tracer {
    45  	args := m.Called(instrumentationName, opts)
    46  	return args.Get(0).(trace.Tracer)
    47  }
    48  
    49  /*
    50  	func TestWithTracerProvider(t *testing.T) {
    51  		h1, err := New()
    52  		require.NoError(t, err)
    53  		assert.Equal(t, "trace.noopTracerProvider", fmt.Sprintf("%T", h1.tp))
    54  		assert.Equal(t, "", h1.instrumentationName)
    55  
    56  		tp := new(mockTracerProvider)
    57  		instrumentationName := "test.test"
    58  
    59  		h2, err := New(WithTracerProvider(tp, instrumentationName))
    60  		require.NoError(t, err)
    61  		assert.Same(t, tp, h2.tp)
    62  		assert.Equal(t, instrumentationName, h2.instrumentationName)
    63  	}
    64  */
    65  func TestWithComponent(t *testing.T) {
    66  	h1, err := New()
    67  	require.NoError(t, err)
    68  	assert.Empty(t, h1.component.Name)
    69  	assert.Empty(t, h1.component.Version)
    70  
    71  	c := Component{
    72  		Name:    "test",
    73  		Version: "1.0",
    74  	}
    75  
    76  	h2, err := New(WithComponent(c))
    77  	require.NoError(t, err)
    78  	assert.Equal(t, "test", h2.component.Name)
    79  	assert.Equal(t, "1.0", h2.component.Version)
    80  }
    81  
    82  func TestWithMaxConcurrent(t *testing.T) {
    83  	numCPU := runtime.NumCPU()
    84  	t.Logf("Num CPUs: %d", numCPU)
    85  
    86  	h1, err := New()
    87  	require.NoError(t, err)
    88  	assert.Equal(t, numCPU, h1.maxConcurrent)
    89  
    90  	h2, err := New(WithMaxConcurrent(13))
    91  	require.NoError(t, err)
    92  	assert.Equal(t, 13, h2.maxConcurrent)
    93  }
    94  
    95  func TestWithSystemInfo(t *testing.T) {
    96  	h1, err := New()
    97  	require.NoError(t, err)
    98  	assert.False(t, h1.systemInfoEnabled)
    99  
   100  	h2, err := New(WithSystemInfo())
   101  	require.NoError(t, err)
   102  	assert.True(t, h2.systemInfoEnabled)
   103  }