Skip to content

Commit 042499f

Browse files
committed
Test: removeMissingCRs
1 parent 133ecd7 commit 042499f

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package controllers
2+
3+
import (
4+
"testing"
5+
6+
v1beta1 "github.com/grafana/grafana-operator/v5/api/v1beta1"
7+
"github.com/stretchr/testify/assert"
8+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
)
10+
11+
func TestRemoveMissingCRs(t *testing.T) {
12+
statusList := v1beta1.NamespacedResourceList{
13+
"default/present/uid",
14+
"default/missing/uid",
15+
"other/missing/uid",
16+
}
17+
18+
dashboards := v1beta1.GrafanaDashboardList{
19+
Items: []v1beta1.GrafanaDashboard{
20+
{
21+
ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "present"},
22+
},
23+
{
24+
ObjectMeta: metav1.ObjectMeta{Namespace: "default", Name: "unrelated-dashboard"},
25+
},
26+
},
27+
}
28+
29+
// Sanity checks before test
30+
assert.Len(t, statusList, 3)
31+
assert.Contains(t, statusList, v1beta1.NamespacedResource("default/present/uid"))
32+
assert.Contains(t, statusList, v1beta1.NamespacedResource("default/missing/uid"))
33+
assert.Contains(t, statusList, v1beta1.NamespacedResource("other/missing/uid"))
34+
35+
updateStatus := false
36+
removeMissingCRs(&statusList, &dashboards, &updateStatus)
37+
38+
assert.True(t, updateStatus, "Entries were removed but status change was not detected")
39+
40+
assert.Len(t, statusList, 1)
41+
assert.Contains(t, statusList, v1beta1.NamespacedResource("default/present/uid"))
42+
assert.NotContains(t, statusList, v1beta1.NamespacedResource("default/missing/uid"))
43+
assert.NotContains(t, statusList, v1beta1.NamespacedResource("other/missing/uid"))
44+
45+
found, _ := statusList.Find("default", "unrelated-dashboard")
46+
assert.False(t, found, "Dashboard is not in status and should not be")
47+
}

0 commit comments

Comments
 (0)