Skip to content

Commit b103f5d

Browse files
committed
add mock applier
Signed-off-by: rashmi_kh <[email protected]>
1 parent ae8094d commit b103f5d

File tree

2 files changed

+12
-23
lines changed

2 files changed

+12
-23
lines changed

internal/controllers/clusterextension_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ func (r *ClusterExtensionReconciler) reconcile(ctx context.Context, ext *ocv1.Cl
210210
var saerr *authentication.ServiceAccountNotFoundError
211211
if errors.As(err, &saerr) {
212212
setInstalledStatusConditionUnknown(ext, saerr.Error())
213-
setStatusProgressing(ext, errors.New("installation cannot proceed due to missing ServiceAccount"))
214-
return ctrl.Result{}, err
213+
setStatusProgressing(ext, errors.New("installation cannot proceed due to missing ServiceAccount"))
214+
return ctrl.Result{}, err
215215
}
216216
setInstalledStatusConditionUnknown(ext, err.Error())
217217
setStatusProgressing(ext, errors.New("retrying to get installed bundle"))

internal/controllers/clusterextension_controller_test.go

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,9 @@ func TestClusterExtensionInstallationFailsWithNoServiceAccount(t *testing.T) {
717717
err := cl.Create(ctx, clusterExtension)
718718
require.NoError(t, err)
719719

720+
t.Log("By fetching updated cluster extension after reconcile")
721+
require.NoError(t, cl.Get(ctx, extKey, clusterExtension))
722+
720723
t.Log("It sets resolution success status")
721724
t.Log("By running reconcile")
722725
reconciler.Resolver = resolve.Func(func(_ context.Context, _ *ocv1.ClusterExtension, _ *ocv1.BundleMetadata) (*declcfg.Bundle, *bsemver.Version, *declcfg.Deprecation, error) {
@@ -730,35 +733,21 @@ func TestClusterExtensionInstallationFailsWithNoServiceAccount(t *testing.T) {
730733
reconciler.Applier = &MockApplier{
731734
objs: []client.Object{},
732735
}
736+
reconciler.Applier = &MockApplier{
737+
err: errors.New("missing ServiceAccount"),
738+
}
733739
reconciler.Manager = &MockManagedContentCacheManager{
734740
cache: &MockManagedContentCache{},
735741
}
736-
res, err := reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
737-
require.Equal(t, ctrl.Result{}, res)
738-
require.NoError(t, err)
742+
743+
_, err = reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
744+
require.Error(t, err)
739745

740746
t.Log("By fetching updated cluster extension after reconcile")
741747
require.NoError(t, cl.Get(ctx, extKey, clusterExtension))
742748

743749
t.Log("By checking the status fields")
744-
require.Equal(t, ocv1.BundleMetadata{Name: "prometheus.v1.0.0", Version: "1.0.0"}, clusterExtension.Status.Install.Bundle)
745-
res, err = reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
746-
require.Error(t, err)
747-
require.Contains(t, err.Error(), "service account", "Expected error about missing ServiceAccount but got: %v", err)
748-
749-
t.Log("By checking the expected installed conditions")
750-
installedCond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1.TypeInstalled)
751-
require.NotNil(t, installedCond)
752-
require.Equal(t, metav1.ConditionTrue, installedCond.Status)
753-
require.Equal(t, ocv1.ReasonSucceeded, installedCond.Reason)
754-
755-
t.Log("By checking the expected progressing conditions")
756-
progressingCond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1.TypeProgressing)
757-
require.NotNil(t, progressingCond)
758-
require.Equal(t, metav1.ConditionTrue, progressingCond.Status)
759-
require.Equal(t, ocv1.ReasonSucceeded, progressingCond.Reason)
760-
761-
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1.ClusterExtension{}))
750+
require.Contains(t, err.Error(), "missing ServiceAccount")
762751
}
763752

764753
func TestClusterExtensionDeleteFinalizerFails(t *testing.T) {

0 commit comments

Comments
 (0)