@@ -30,7 +30,7 @@ var _ = Describe("KeycloakRealmGroup controller", Ordered, func() {
30
30
Expect (adapter .SkipAlreadyExistsErr (err )).ShouldNot (HaveOccurred ())
31
31
32
32
By ("Creating a KeycloakRealmGroup subgroup" )
33
- group := & keycloakApi.KeycloakRealmGroup {
33
+ subgroup := & keycloakApi.KeycloakRealmGroup {
34
34
ObjectMeta : metav1.ObjectMeta {
35
35
Name : "test-subgroup" ,
36
36
Namespace : ns ,
@@ -44,16 +44,39 @@ var _ = Describe("KeycloakRealmGroup controller", Ordered, func() {
44
44
Path : "/test-subgroup" ,
45
45
},
46
46
}
47
- Expect (k8sClient .Create (ctx , group )).Should (Succeed ())
47
+ Expect (k8sClient .Create (ctx , subgroup )).Should (Succeed ())
48
+ Eventually (func (g Gomega ) {
49
+ createdGroup := & keycloakApi.KeycloakRealmGroup {}
50
+ err = k8sClient .Get (ctx , types.NamespacedName {Name : subgroup .Name , Namespace : ns }, createdGroup )
51
+ g .Expect (err ).ShouldNot (HaveOccurred ())
52
+ g .Expect (createdGroup .Status .Value ).Should (Equal (helper .StatusOK ))
53
+ }).WithTimeout (time .Second * 20 ).WithPolling (time .Second ).Should (Succeed ())
54
+
55
+ By ("Creating a KeycloakRealmGroup subgroup2" )
56
+ subgroup2 := & keycloakApi.KeycloakRealmGroup {
57
+ ObjectMeta : metav1.ObjectMeta {
58
+ Name : "test-subgroup2" ,
59
+ Namespace : ns ,
60
+ },
61
+ Spec : keycloakApi.KeycloakRealmGroupSpec {
62
+ Name : "test-subgroup2" ,
63
+ RealmRef : common.RealmRef {
64
+ Kind : keycloakApi .KeycloakRealmKind ,
65
+ Name : KeycloakRealmCR ,
66
+ },
67
+ Path : "/test-subgroup2" ,
68
+ },
69
+ }
70
+ Expect (k8sClient .Create (ctx , subgroup2 )).Should (Succeed ())
48
71
Eventually (func (g Gomega ) {
49
72
createdGroup := & keycloakApi.KeycloakRealmGroup {}
50
- err = k8sClient .Get (ctx , types.NamespacedName {Name : "test-subgroup" , Namespace : ns }, createdGroup )
73
+ err = k8sClient .Get (ctx , types.NamespacedName {Name : subgroup2 . Name , Namespace : ns }, createdGroup )
51
74
g .Expect (err ).ShouldNot (HaveOccurred ())
52
75
g .Expect (createdGroup .Status .Value ).Should (Equal (helper .StatusOK ))
53
76
}).WithTimeout (time .Second * 20 ).WithPolling (time .Second ).Should (Succeed ())
54
77
55
78
By ("Creating a KeycloakRealmGroup" )
56
- group = & keycloakApi.KeycloakRealmGroup {
79
+ group : = & keycloakApi.KeycloakRealmGroup {
57
80
ObjectMeta : metav1.ObjectMeta {
58
81
Name : groupCR ,
59
82
Namespace : ns ,
@@ -83,7 +106,7 @@ var _ = Describe("KeycloakRealmGroup controller", Ordered, func() {
83
106
Expect (k8sClient .Get (ctx , types.NamespacedName {Namespace : ns , Name : groupCR }, group )).Should (Succeed ())
84
107
85
108
By ("Updating a parent KeycloakRealmGroup" )
86
- group .Spec .SubGroups = []string {}
109
+ group .Spec .SubGroups = []string {"test-subgroup2" }
87
110
88
111
Expect (k8sClient .Update (ctx , group )).Should (Succeed ())
89
112
Eventually (func (g Gomega ) {
@@ -93,7 +116,7 @@ var _ = Describe("KeycloakRealmGroup controller", Ordered, func() {
93
116
g .Expect (updatedGroup .Status .Value ).Should (Equal (helper .StatusOK ))
94
117
}, time .Minute , time .Second * 5 ).Should (Succeed ())
95
118
})
96
- It ("Should delete KeycloakRealmGroup" , func () {
119
+ It ("Should delete KeycloakRealmGroup and subgroup " , func () {
97
120
By ("Getting KeycloakRealmGroup" )
98
121
group := & keycloakApi.KeycloakRealmGroup {}
99
122
Expect (k8sClient .Get (ctx , types.NamespacedName {Namespace : ns , Name : groupCR }, group )).Should (Succeed ())
@@ -105,6 +128,82 @@ var _ = Describe("KeycloakRealmGroup controller", Ordered, func() {
105
128
106
129
g .Expect (k8sErrors .IsNotFound (err )).Should (BeTrue ())
107
130
}, timeout , interval ).Should (Succeed ())
131
+
132
+ By ("Getting KeycloakRealmGroup subgroup" )
133
+ subgroup := & keycloakApi.KeycloakRealmGroup {}
134
+ Expect (k8sClient .Get (ctx , types.NamespacedName {Namespace : ns , Name : "test-subgroup2" }, subgroup )).Should (Succeed ())
135
+ By ("Deleting KeycloakRealmGroup subgroup" )
136
+ Expect (k8sClient .Delete (ctx , subgroup )).Should (Succeed ())
137
+ Eventually (func (g Gomega ) {
138
+ deletedSubGroup := & keycloakApi.KeycloakRealmGroup {}
139
+ err := k8sClient .Get (ctx , types.NamespacedName {Name : subgroup .Name , Namespace : ns }, deletedSubGroup )
140
+
141
+ g .Expect (k8sErrors .IsNotFound (err )).Should (BeTrue ())
142
+ }, timeout , interval ).Should (Succeed ())
143
+ })
144
+ It ("Should delete KeycloakRealmGroup if subgroup is deleted" , func () {
145
+ By ("Creating a subgroup" )
146
+ subgroup := & keycloakApi.KeycloakRealmGroup {
147
+ ObjectMeta : metav1.ObjectMeta {
148
+ Name : "test-subgroup-for-deletion" ,
149
+ Namespace : ns ,
150
+ },
151
+ Spec : keycloakApi.KeycloakRealmGroupSpec {
152
+ Name : "test-subgroup-for-deletion" ,
153
+ RealmRef : common.RealmRef {
154
+ Kind : keycloakApi .KeycloakRealmKind ,
155
+ Name : KeycloakRealmCR ,
156
+ },
157
+ },
158
+ }
159
+ Expect (k8sClient .Create (ctx , subgroup )).Should (Succeed ())
160
+ Eventually (func (g Gomega ) {
161
+ createdSubGroup := & keycloakApi.KeycloakRealmGroup {}
162
+ err := k8sClient .Get (ctx , types.NamespacedName {Name : subgroup .Name , Namespace : ns }, createdSubGroup )
163
+ g .Expect (err ).ShouldNot (HaveOccurred ())
164
+ g .Expect (createdSubGroup .Status .Value ).Should (Equal (helper .StatusOK ))
165
+ }).WithTimeout (time .Second * 20 ).WithPolling (time .Second ).Should (Succeed ())
166
+
167
+ By ("Creating a group with subgroup" )
168
+ group := & keycloakApi.KeycloakRealmGroup {
169
+ ObjectMeta : metav1.ObjectMeta {
170
+ Name : "test-group-for-deletion" ,
171
+ Namespace : ns ,
172
+ },
173
+ Spec : keycloakApi.KeycloakRealmGroupSpec {
174
+ Name : "test-group-for-deletion" ,
175
+ RealmRef : common.RealmRef {
176
+ Kind : keycloakApi .KeycloakRealmKind ,
177
+ Name : KeycloakRealmCR ,
178
+ },
179
+ SubGroups : []string {"test-subgroup-for-deletion" },
180
+ },
181
+ }
182
+ Expect (k8sClient .Create (ctx , group )).Should (Succeed ())
183
+ Eventually (func (g Gomega ) {
184
+ createdGroup := & keycloakApi.KeycloakRealmGroup {}
185
+ err := k8sClient .Get (ctx , types.NamespacedName {Name : group .Name , Namespace : ns }, createdGroup )
186
+ g .Expect (err ).ShouldNot (HaveOccurred ())
187
+ g .Expect (createdGroup .Status .Value ).Should (Equal (helper .StatusOK ))
188
+ }).WithTimeout (time .Second * 20 ).WithPolling (time .Second ).Should (Succeed ())
189
+
190
+ By ("Deleting subgroup" )
191
+ Expect (k8sClient .Delete (ctx , subgroup )).Should (Succeed ())
192
+ Eventually (func (g Gomega ) {
193
+ deletedSubGroup := & keycloakApi.KeycloakRealmGroup {}
194
+ err := k8sClient .Get (ctx , types.NamespacedName {Name : subgroup .Name , Namespace : ns }, deletedSubGroup )
195
+
196
+ g .Expect (k8sErrors .IsNotFound (err )).Should (BeTrue ())
197
+ }, timeout , interval ).Should (Succeed ())
198
+
199
+ By ("Deleting group" )
200
+ Expect (k8sClient .Delete (ctx , group )).Should (Succeed ())
201
+ Eventually (func (g Gomega ) {
202
+ deletedGroup := & keycloakApi.KeycloakRealmGroup {}
203
+ err := k8sClient .Get (ctx , types.NamespacedName {Name : group .Name , Namespace : ns }, deletedGroup )
204
+
205
+ g .Expect (k8sErrors .IsNotFound (err )).Should (BeTrue ())
206
+ }, timeout , interval ).Should (Succeed ())
108
207
})
109
208
It ("Should preserve group with annotation" , func () {
110
209
By ("Creating a KeycloakRealmGroup" )
0 commit comments