Skip to content

Commit d742325

Browse files
committed
chore: added unit test for extension service function
Signed-off-by: Ankit152 <[email protected]>
1 parent 8dd10ad commit d742325

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed

internal/manifests/collector/service.go

+4
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ func ExtensionService(params manifests.Params) (*corev1.Service, error) {
122122
return nil, err
123123
}
124124

125+
if len(ports) == 0 {
126+
return nil, nil
127+
}
128+
125129
return &corev1.Service{
126130
ObjectMeta: metav1.ObjectMeta{
127131
Name: name,

internal/manifests/collector/service_test.go

+140
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,146 @@ func TestMonitoringService(t *testing.T) {
321321
})
322322
}
323323

324+
func TestExtensionService(t *testing.T) {
325+
t.Run("when the extension has http endpoint", func(t *testing.T) {
326+
params := manifests.Params{
327+
Config: config.Config{},
328+
Log: logger,
329+
OtelCol: v1beta1.OpenTelemetryCollector{
330+
Spec: v1beta1.OpenTelemetryCollectorSpec{
331+
Config: v1beta1.Config{
332+
Service: v1beta1.Service{
333+
Extensions: []string{"jaeger_query"},
334+
},
335+
Extensions: &v1beta1.AnyConfig{
336+
Object: map[string]interface{}{
337+
"jaeger_query": map[string]interface{}{
338+
"http": map[string]interface{}{
339+
"endpoint": "0.0.0.0:16686",
340+
},
341+
},
342+
},
343+
},
344+
},
345+
},
346+
},
347+
}
348+
349+
actual, err := ExtensionService(params)
350+
assert.NotNil(t, actual)
351+
assert.NoError(t, err)
352+
})
353+
354+
t.Run("when the extension has grpc endpoint", func(t *testing.T) {
355+
params := manifests.Params{
356+
Config: config.Config{},
357+
Log: logger,
358+
OtelCol: v1beta1.OpenTelemetryCollector{
359+
Spec: v1beta1.OpenTelemetryCollectorSpec{
360+
Config: v1beta1.Config{
361+
Service: v1beta1.Service{
362+
Extensions: []string{"jaeger_query"},
363+
},
364+
Extensions: &v1beta1.AnyConfig{
365+
Object: map[string]interface{}{
366+
"jaeger_query": map[string]interface{}{
367+
"grpc": map[string]interface{}{
368+
"endpoint": "0.0.0.0:16686",
369+
},
370+
},
371+
},
372+
},
373+
},
374+
},
375+
},
376+
}
377+
378+
actual, err := ExtensionService(params)
379+
assert.NotNil(t, actual)
380+
assert.NoError(t, err)
381+
})
382+
383+
t.Run("when the extension has both http and grpc endpoint", func(t *testing.T) {
384+
params := manifests.Params{
385+
Config: config.Config{},
386+
Log: logger,
387+
OtelCol: v1beta1.OpenTelemetryCollector{
388+
Spec: v1beta1.OpenTelemetryCollectorSpec{
389+
Config: v1beta1.Config{
390+
Service: v1beta1.Service{
391+
Extensions: []string{"jaeger_query"},
392+
},
393+
Extensions: &v1beta1.AnyConfig{
394+
Object: map[string]interface{}{
395+
"jaeger_query": map[string]interface{}{
396+
"http": map[string]interface{}{
397+
"endpoint": "0.0.0.0:16686",
398+
},
399+
"grpc": map[string]interface{}{
400+
"endpoint": "0.0.0.0:16686",
401+
},
402+
},
403+
},
404+
},
405+
},
406+
},
407+
},
408+
}
409+
410+
actual, err := ExtensionService(params)
411+
assert.NotNil(t, actual)
412+
assert.NoError(t, err)
413+
})
414+
415+
t.Run("when the extension has no extensions defined", func(t *testing.T) {
416+
params := manifests.Params{
417+
Config: config.Config{},
418+
Log: logger,
419+
OtelCol: v1beta1.OpenTelemetryCollector{
420+
Spec: v1beta1.OpenTelemetryCollectorSpec{
421+
Config: v1beta1.Config{
422+
Service: v1beta1.Service{
423+
Extensions: []string{"jaeger_query"},
424+
},
425+
Extensions: &v1beta1.AnyConfig{
426+
Object: map[string]interface{}{},
427+
},
428+
},
429+
},
430+
},
431+
}
432+
433+
actual, err := ExtensionService(params)
434+
assert.Nil(t, actual)
435+
assert.NoError(t, err)
436+
})
437+
438+
t.Run("when the extension has no endpoint defined", func(t *testing.T) {
439+
params := manifests.Params{
440+
Config: config.Config{},
441+
Log: logger,
442+
OtelCol: v1beta1.OpenTelemetryCollector{
443+
Spec: v1beta1.OpenTelemetryCollectorSpec{
444+
Config: v1beta1.Config{
445+
Service: v1beta1.Service{
446+
Extensions: []string{"jaeger_query"},
447+
},
448+
Extensions: &v1beta1.AnyConfig{
449+
Object: map[string]interface{}{
450+
"jaeger_query": map[string]interface{}{},
451+
},
452+
},
453+
},
454+
},
455+
},
456+
}
457+
458+
actual, err := ExtensionService(params)
459+
assert.NotNil(t, actual)
460+
assert.NoError(t, err)
461+
})
462+
}
463+
324464
func service(name string, ports []v1beta1.PortsSpec) v1.Service {
325465
return serviceWithInternalTrafficPolicy(name, ports, v1.ServiceInternalTrafficPolicyCluster)
326466
}

0 commit comments

Comments
 (0)