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 }