Skip to content

Commit d2c9093

Browse files
add tests
1 parent ba0cb62 commit d2c9093

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

receiver/k8sobjectsreceiver/config_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ func TestValidate(t *testing.T) {
132132
{
133133
desc: "invalid mode",
134134
cfg: &Config{
135+
ErrorMode: PropagateError,
135136
Objects: []*K8sObjectsConfig{
136137
{
137138
Name: "pods",
@@ -144,6 +145,7 @@ func TestValidate(t *testing.T) {
144145
{
145146
desc: "exclude watch type with pull mode",
146147
cfg: &Config{
148+
ErrorMode: PropagateError,
147149
Objects: []*K8sObjectsConfig{
148150
{
149151
Name: "pods",
@@ -159,6 +161,7 @@ func TestValidate(t *testing.T) {
159161
{
160162
desc: "default mode is set",
161163
cfg: &Config{
164+
ErrorMode: PropagateError,
162165
Objects: []*K8sObjectsConfig{
163166
{
164167
Name: "pods",
@@ -169,6 +172,7 @@ func TestValidate(t *testing.T) {
169172
{
170173
desc: "default interval for pull mode",
171174
cfg: &Config{
175+
ErrorMode: PropagateError,
172176
Objects: []*K8sObjectsConfig{
173177
{
174178
Name: "pods",

receiver/k8sobjectsreceiver/factory_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ func TestDefaultConfig(t *testing.T) {
2727
APIConfig: k8sconfig.APIConfig{
2828
AuthType: k8sconfig.AuthTypeServiceAccount,
2929
},
30+
ErrorMode: PropagateError,
3031
}, rCfg)
3132
}
3233

receiver/k8sobjectsreceiver/receiver_test.go

+70
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,82 @@ import (
1818
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver/internal/metadata"
1919
)
2020

21+
func TestErrorModes(t *testing.T) {
22+
t.Parallel()
23+
24+
tests := []struct {
25+
desc string
26+
errorMode ErrorMode
27+
expectError bool
28+
}{
29+
{
30+
desc: "propagate error mode returns error",
31+
errorMode: PropagateError,
32+
expectError: true,
33+
},
34+
{
35+
desc: "ignore error mode logs and continues",
36+
errorMode: IgnoreError,
37+
expectError: false,
38+
},
39+
{
40+
desc: "silent error mode continues without logging",
41+
errorMode: SilentError,
42+
expectError: false,
43+
},
44+
}
45+
46+
for _, tt := range tests {
47+
t.Run(tt.desc, func(t *testing.T) {
48+
mockClient := newMockDynamicClient()
49+
rCfg := createDefaultConfig().(*Config)
50+
rCfg.makeDynamicClient = mockClient.getMockDynamicClient
51+
rCfg.makeDiscoveryClient = getMockDiscoveryClient
52+
rCfg.ErrorMode = tt.errorMode
53+
rCfg.Objects = []*K8sObjectsConfig{
54+
{
55+
Name: "nonexistent-resource",
56+
Mode: PullMode,
57+
},
58+
}
59+
60+
r, err := newReceiver(
61+
receivertest.NewNopSettings(metadata.Type),
62+
rCfg,
63+
consumertest.NewNop(),
64+
)
65+
require.NoError(t, err)
66+
require.NotNil(t, r)
67+
err = r.Start(context.Background(), componenttest.NewNopHost())
68+
if tt.expectError {
69+
assert.Error(t, err)
70+
} else {
71+
assert.NoError(t, err)
72+
}
73+
})
74+
}
75+
}
76+
2177
func TestNewReceiver(t *testing.T) {
2278
t.Parallel()
2379

2480
mockClient := newMockDynamicClient()
81+
mockClient.createPods(
82+
generatePod("pod1", "default", map[string]any{
83+
"environment": "production",
84+
}, "1"),
85+
)
86+
2587
rCfg := createDefaultConfig().(*Config)
2688
rCfg.makeDynamicClient = mockClient.getMockDynamicClient
2789
rCfg.makeDiscoveryClient = getMockDiscoveryClient
90+
rCfg.ErrorMode = PropagateError
91+
rCfg.Objects = []*K8sObjectsConfig{
92+
{
93+
Name: "pods",
94+
Mode: PullMode,
95+
},
96+
}
2897

2998
r, err := newReceiver(
3099
receivertest.NewNopSettings(metadata.Type),
@@ -57,6 +126,7 @@ func TestPullObject(t *testing.T) {
57126
rCfg := createDefaultConfig().(*Config)
58127
rCfg.makeDynamicClient = mockClient.getMockDynamicClient
59128
rCfg.makeDiscoveryClient = getMockDiscoveryClient
129+
rCfg.ErrorMode = PropagateError
60130

61131
rCfg.Objects = []*K8sObjectsConfig{
62132
{

0 commit comments

Comments
 (0)