Skip to content

Commit 91d3b15

Browse files
committed
add test case
Signed-off-by: saumeya <[email protected]>
1 parent b89d967 commit 91d3b15

File tree

1 file changed

+49
-10
lines changed

1 file changed

+49
-10
lines changed

controllers/argocd_metrics_controller_test.go

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const (
5252
argoCDInstanceName = "openshift-gitops"
5353
)
5454

55-
func newClient(s *runtime.Scheme, namespace, name string) client.Client {
55+
func newClient(s *runtime.Scheme, namespace, name string, enableMonitoring bool) client.Client {
5656
ns := corev1.Namespace{
5757
ObjectMeta: v1.ObjectMeta{
5858
Name: namespace,
@@ -65,17 +65,17 @@ func newClient(s *runtime.Scheme, namespace, name string) client.Client {
6565
},
6666
Spec: argoapp.ArgoCDSpec{
6767
Monitoring: argoapp.ArgoCDMonitoringSpec{
68-
Enabled: true,
68+
Enabled: enableMonitoring,
6969
},
7070
},
7171
}
7272
return fake.NewClientBuilder().WithScheme(s).WithObjects(&ns, &argocd).Build()
7373
}
7474

75-
func newMetricsReconciler(t *testing.T, namespace, name string) ArgoCDMetricsReconciler {
75+
func newMetricsReconciler(t *testing.T, namespace, name string, enableMonitoring bool) ArgoCDMetricsReconciler {
7676
t.Helper()
7777
s := newScheme()
78-
c := newClient(s, namespace, name)
78+
c := newClient(s, namespace, name, enableMonitoring)
7979
r := ArgoCDMetricsReconciler{Client: c, Scheme: s}
8080
return r
8181
}
@@ -95,7 +95,7 @@ func TestReconcile_add_namespace_label(t *testing.T) {
9595
},
9696
}
9797
for _, tc := range testCases {
98-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
98+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
9999
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
100100
assert.NilError(t, err)
101101

@@ -122,7 +122,7 @@ func TestReconcile_add_read_role(t *testing.T) {
122122
},
123123
}
124124
for _, tc := range testCases {
125-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
125+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
126126
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
127127
assert.NilError(t, err)
128128

@@ -165,7 +165,7 @@ func TestReconcile_add_read_role_binding(t *testing.T) {
165165
},
166166
}
167167
for _, tc := range testCases {
168-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
168+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
169169
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
170170
assert.NilError(t, err)
171171

@@ -209,7 +209,7 @@ func TestReconcile_add_service_monitors(t *testing.T) {
209209
},
210210
}
211211
for _, tc := range testCases {
212-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
212+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
213213
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
214214
assert.NilError(t, err)
215215

@@ -260,6 +260,45 @@ func TestReconcile_add_service_monitors(t *testing.T) {
260260
}
261261
}
262262

263+
func TestReconcile_remove_service_monitors(t *testing.T) {
264+
testCases := []struct {
265+
instanceName string
266+
namespace string
267+
}{
268+
{
269+
instanceName: argoCDInstanceName,
270+
namespace: "openshift-gitops",
271+
},
272+
{
273+
instanceName: "instance-two",
274+
namespace: "namespace-two",
275+
},
276+
}
277+
for _, tc := range testCases {
278+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, false)
279+
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
280+
assert.NilError(t, err)
281+
282+
serviceMonitor := monitoringv1.ServiceMonitor{}
283+
serviceMonitorName := tc.instanceName
284+
285+
err = r.Client.Get(context.TODO(), types.NamespacedName{Name: serviceMonitorName, Namespace: tc.namespace}, &serviceMonitor)
286+
assert.Error(t, err, err.Error())
287+
288+
serviceMonitor = monitoringv1.ServiceMonitor{}
289+
serviceMonitorName = fmt.Sprintf("%s-server", tc.instanceName)
290+
291+
err = r.Client.Get(context.TODO(), types.NamespacedName{Name: serviceMonitorName, Namespace: tc.namespace}, &serviceMonitor)
292+
assert.Error(t, err, err.Error())
293+
294+
serviceMonitor = monitoringv1.ServiceMonitor{}
295+
serviceMonitorName = fmt.Sprintf("%s-repo-server", tc.instanceName)
296+
297+
err = r.Client.Get(context.TODO(), types.NamespacedName{Name: serviceMonitorName, Namespace: tc.namespace}, &serviceMonitor)
298+
assert.Error(t, err, err.Error())
299+
}
300+
}
301+
263302
func TestReconciler_add_prometheus_rule(t *testing.T) {
264303
testCases := []struct {
265304
instanceName string
@@ -275,7 +314,7 @@ func TestReconciler_add_prometheus_rule(t *testing.T) {
275314
},
276315
}
277316
for _, tc := range testCases {
278-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
317+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
279318
_, err := r.Reconcile(context.TODO(), newRequest(tc.namespace, tc.instanceName))
280319
assert.NilError(t, err)
281320

@@ -323,7 +362,7 @@ func TestReconciler_add_dashboard(t *testing.T) {
323362
},
324363
}
325364
for _, tc := range testCases {
326-
r := newMetricsReconciler(t, tc.namespace, tc.instanceName)
365+
r := newMetricsReconciler(t, tc.namespace, tc.instanceName, true)
327366
// Create dashboard namespace
328367
err := r.Client.Create(context.TODO(), &ns)
329368
assert.NilError(t, err)

0 commit comments

Comments
 (0)