@@ -204,7 +204,51 @@ func TestReconciler(t *testing.T) {
204204 },
205205 want : want {result : reconcile.Result {Requeue : true }},
206206 },
207- "ExternalCreatePending" : {
207+ "ExtraFinalizersDelayDelete" : {
208+ reason : "The existence of multiple finalizers should trigger a requeue after a short wait." ,
209+ args : args {
210+ m : & fake.Manager {
211+ Client : & test.MockClient {
212+ MockGet : test .NewMockGetFn (nil , func (obj client.Object ) error {
213+ mg :=
214+ asManaged (obj , 42 )
215+ mg .SetDeletionTimestamp (& now )
216+ mg .SetDeletionPolicy (xpv1 .DeletionDelete )
217+ mg .SetFinalizers ([]string {FinalizerName , "finalizer2" })
218+ return nil
219+ }),
220+ MockStatusUpdate : test .MockSubResourceUpdateFn (func (_ context.Context , _ client.Object ,
221+ _ ... client.SubResourceUpdateOption ) error {
222+ want :=
223+ newManaged (42 )
224+ want .SetDeletionTimestamp (& now )
225+ want .SetDeletionPolicy (xpv1 .DeletionDelete )
226+ want .SetFinalizers ([]string {FinalizerName , "finalizer2" })
227+ want .SetConditions (xpv1 .Deleting ().WithObservedGeneration (42 ))
228+ return nil
229+ }),
230+ },
231+ Scheme : fake .SchemeWith (& fake.Managed {}),
232+ },
233+ mg : resource .ManagedKind (fake .GVK (& fake.Managed {})),
234+ o : []ReconcilerOption {
235+ WithInitializers (),
236+ WithReferenceResolver (ReferenceResolverFn (func (_ context.Context , _ resource.Managed ) error { return nil })),
237+ WithExternalConnector (ExternalConnectorFn (func (_ context.Context , _ resource.Managed ) (ExternalClient , error ) {
238+ c := & ExternalClientFns {
239+ ObserveFn : func (_ context.Context , _ resource.Managed ) (ExternalObservation , error ) {
240+ return ExternalObservation {ResourceExists : true }, nil
241+ },
242+ DisconnectFn : func (_ context.Context ) error {
243+ return nil
244+ },
245+ }
246+ return c , nil
247+ })),
248+ },
249+ },
250+ want : want {result : reconcile.Result {Requeue : true }},
251+ }, "ExternalCreatePending" : {
208252 reason : "We should return early if the managed resource appears to be pending creation. We might have leaked a resource and don't want to create another." ,
209253 args : args {
210254 m : & fake.Manager {
0 commit comments