@@ -28,6 +28,7 @@ import (
28
28
"sigs.k8s.io/controller-runtime/pkg/cache"
29
29
"sigs.k8s.io/controller-runtime/pkg/cache/informertest"
30
30
"sigs.k8s.io/controller-runtime/pkg/client"
31
+ fakeleaderelection "sigs.k8s.io/controller-runtime/pkg/leaderelection/fake"
31
32
"sigs.k8s.io/controller-runtime/pkg/reconcile"
32
33
"sigs.k8s.io/controller-runtime/pkg/recorder"
33
34
"sigs.k8s.io/controller-runtime/pkg/runtime/inject"
@@ -114,88 +115,103 @@ var _ = Describe("manger.Manager", func() {
114
115
})
115
116
116
117
Describe ("Start" , func () {
117
- It ("should Start each Component" , func (done Done ) {
118
- m , err := New (cfg , Options {})
119
- Expect (err ).NotTo (HaveOccurred ())
120
- c1 := make (chan struct {})
121
- m .Add (RunnableFunc (func (s <- chan struct {}) error {
122
- defer close (c1 )
123
- defer GinkgoRecover ()
124
- return nil
125
- }))
118
+ var startSuite = func (options Options ) {
119
+ It ("should Start each Component" , func (done Done ) {
120
+ m , err := New (cfg , options )
121
+ Expect (err ).NotTo (HaveOccurred ())
122
+ c1 := make (chan struct {})
123
+ m .Add (RunnableFunc (func (s <- chan struct {}) error {
124
+ defer close (c1 )
125
+ defer GinkgoRecover ()
126
+ return nil
127
+ }))
126
128
127
- c2 := make (chan struct {})
128
- m .Add (RunnableFunc (func (s <- chan struct {}) error {
129
- defer close (c2 )
130
- defer GinkgoRecover ()
131
- return nil
132
- }))
129
+ c2 := make (chan struct {})
130
+ m .Add (RunnableFunc (func (s <- chan struct {}) error {
131
+ defer close (c2 )
132
+ defer GinkgoRecover ()
133
+ return nil
134
+ }))
133
135
134
- go func () {
135
- defer GinkgoRecover ()
136
- Expect (m .Start (stop )).NotTo (HaveOccurred ())
137
- }()
138
- <- c1
139
- <- c2
136
+ go func () {
137
+ defer GinkgoRecover ()
138
+ Expect (m .Start (stop )).NotTo (HaveOccurred ())
139
+ }()
140
+ <- c1
141
+ <- c2
140
142
141
- close (done )
142
- })
143
+ close (done )
144
+ })
143
145
144
- It ("should stop when stop is called" , func (done Done ) {
145
- m , err := New (cfg , Options {} )
146
- Expect (err ).NotTo (HaveOccurred ())
147
- s := make (chan struct {})
148
- close (s )
149
- Expect (m .Start (s )).NotTo (HaveOccurred ())
146
+ It ("should stop when stop is called" , func (done Done ) {
147
+ m , err := New (cfg , options )
148
+ Expect (err ).NotTo (HaveOccurred ())
149
+ s := make (chan struct {})
150
+ close (s )
151
+ Expect (m .Start (s )).NotTo (HaveOccurred ())
150
152
151
- close (done )
152
- })
153
+ close (done )
154
+ })
153
155
154
- It ("should return an error if it can't start the cache" , func (done Done ) {
155
- m , err := New (cfg , Options {} )
156
- Expect (err ).NotTo (HaveOccurred ())
157
- mgr , ok := m .(* controllerManager )
158
- Expect (ok ).To (BeTrue ())
159
- mgr .startCache = func (stop <- chan struct {}) error {
160
- return fmt .Errorf ("expected error" )
161
- }
162
- Expect (m .Start (stop ).Error ()).To (ContainSubstring ("expected error" ))
156
+ It ("should return an error if it can't start the cache" , func (done Done ) {
157
+ m , err := New (cfg , options )
158
+ Expect (err ).NotTo (HaveOccurred ())
159
+ mgr , ok := m .(* controllerManager )
160
+ Expect (ok ).To (BeTrue ())
161
+ mgr .startCache = func (stop <- chan struct {}) error {
162
+ return fmt .Errorf ("expected error" )
163
+ }
164
+ Expect (m .Start (stop ).Error ()).To (ContainSubstring ("expected error" ))
163
165
164
- close (done )
165
- })
166
+ close (done )
167
+ })
166
168
167
- It ("should return an error if any Components fail to Start" , func (done Done ) {
168
- m , err := New (cfg , Options {} )
169
- Expect (err ).NotTo (HaveOccurred ())
170
- c1 := make (chan struct {})
171
- m .Add (RunnableFunc (func (s <- chan struct {}) error {
172
- defer GinkgoRecover ()
173
- defer close (c1 )
174
- return nil
175
- }))
169
+ It ("should return an error if any Components fail to Start" , func (done Done ) {
170
+ m , err := New (cfg , options )
171
+ Expect (err ).NotTo (HaveOccurred ())
172
+ c1 := make (chan struct {})
173
+ m .Add (RunnableFunc (func (s <- chan struct {}) error {
174
+ defer GinkgoRecover ()
175
+ defer close (c1 )
176
+ return nil
177
+ }))
176
178
177
- c2 := make (chan struct {})
178
- m .Add (RunnableFunc (func (s <- chan struct {}) error {
179
- defer GinkgoRecover ()
180
- defer close (c2 )
181
- return fmt .Errorf ("expected error" )
182
- }))
179
+ c2 := make (chan struct {})
180
+ m .Add (RunnableFunc (func (s <- chan struct {}) error {
181
+ defer GinkgoRecover ()
182
+ defer close (c2 )
183
+ return fmt .Errorf ("expected error" )
184
+ }))
183
185
184
- c3 := make (chan struct {})
185
- m .Add (RunnableFunc (func (s <- chan struct {}) error {
186
- defer GinkgoRecover ()
187
- defer close (c3 )
188
- return nil
189
- }))
186
+ c3 := make (chan struct {})
187
+ m .Add (RunnableFunc (func (s <- chan struct {}) error {
188
+ defer GinkgoRecover ()
189
+ defer close (c3 )
190
+ return nil
191
+ }))
190
192
191
- go func () {
192
- defer GinkgoRecover ()
193
- Expect (m .Start (stop )).NotTo (HaveOccurred ())
194
- close (done )
195
- }()
196
- <- c1
197
- <- c2
198
- <- c3
193
+ go func () {
194
+ defer GinkgoRecover ()
195
+ Expect (m .Start (stop )).NotTo (HaveOccurred ())
196
+ close (done )
197
+ }()
198
+ <- c1
199
+ <- c2
200
+ <- c3
201
+ })
202
+ }
203
+
204
+ Context ("with defaults" , func () {
205
+ startSuite (Options {})
206
+ })
207
+
208
+ Context ("with leaderelection enabled" , func () {
209
+ startSuite (Options {
210
+ LeaderElection : true ,
211
+ LeaderElectionID : "controller-runtime" ,
212
+ LeaderElectionNamespace : "default" ,
213
+ newResourceLock : fakeleaderelection .NewResourceLock ,
214
+ })
199
215
})
200
216
})
201
217
0 commit comments