Skip to content

Commit f9240c2

Browse files
committed
Unskip all - failing tests (up|down)grade should err
Unskips all in clusterextension_controller_test.go Signed-off-by: Brett Tofel <[email protected]>
1 parent 692650c commit f9240c2

File tree

1 file changed

+30
-86
lines changed

1 file changed

+30
-86
lines changed

internal/controllers/clusterextension_controller_test.go

+30-86
Original file line numberDiff line numberDiff line change
@@ -128,65 +128,6 @@ func TestClusterExtensionNonExistentVersion(t *testing.T) {
128128
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1alpha1.ClusterExtension{}))
129129
}
130130

131-
func TestClusterExtensionBundleDeploymentDoesNotExist(t *testing.T) {
132-
t.Skip("Skip and replace with e2e for BundleDeployment")
133-
cl, reconciler := newClientAndReconciler(t)
134-
ctx := context.Background()
135-
extKey := types.NamespacedName{Name: fmt.Sprintf("cluster-extension-test-%s", rand.String(8))}
136-
const pkgName = "prometheus"
137-
installNamespace := fmt.Sprintf("test-ns-%s", rand.String(8))
138-
139-
t.Log("When the cluster extension specifies a valid available package")
140-
t.Log("By initializing cluster state")
141-
clusterExtension := &ocv1alpha1.ClusterExtension{
142-
ObjectMeta: metav1.ObjectMeta{Name: extKey.Name},
143-
Spec: ocv1alpha1.ClusterExtensionSpec{
144-
PackageName: pkgName,
145-
InstallNamespace: installNamespace,
146-
},
147-
}
148-
require.NoError(t, cl.Create(ctx, clusterExtension))
149-
150-
t.Log("When the BundleDeployment does not exist")
151-
t.Log("By running reconcile")
152-
res, err := reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
153-
require.Equal(t, ctrl.Result{}, res)
154-
require.NoError(t, err)
155-
156-
t.Log("By fetching updated cluster extension after reconcile")
157-
require.NoError(t, cl.Get(ctx, extKey, clusterExtension))
158-
159-
t.Log("It results in the expected BundleDeployment")
160-
bd := &rukpakv1alpha2.BundleDeployment{}
161-
require.NoError(t, cl.Get(ctx, types.NamespacedName{Name: extKey.Name}, bd))
162-
require.Equal(t, "core-rukpak-io-registry", bd.Spec.ProvisionerClassName)
163-
require.Equal(t, installNamespace, bd.Spec.InstallNamespace)
164-
require.NotNil(t, bd.Spec.Source.Image)
165-
require.Equal(t, "quay.io/operatorhubio/[email protected]", bd.Spec.Source.Image.Ref)
166-
167-
t.Log("It sets the ResolvedBundle status field")
168-
require.Equal(t, &ocv1alpha1.BundleMetadata{Name: "operatorhub/prometheus/beta/2.0.0", Version: "2.0.0"}, clusterExtension.Status.ResolvedBundle)
169-
170-
t.Log("It sets the InstalledBundle status field")
171-
require.Empty(t, clusterExtension.Status.InstalledBundle)
172-
173-
t.Log("It sets the status on the cluster extension")
174-
cond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1alpha1.TypeResolved)
175-
require.NotNil(t, cond)
176-
require.Equal(t, metav1.ConditionTrue, cond.Status)
177-
require.Equal(t, ocv1alpha1.ReasonSuccess, cond.Reason)
178-
require.Equal(t, "resolved to \"quay.io/operatorhubio/[email protected]\"", cond.Message)
179-
180-
cond = apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1alpha1.TypeInstalled)
181-
require.NotNil(t, cond)
182-
require.Equal(t, metav1.ConditionUnknown, cond.Status)
183-
require.Equal(t, ocv1alpha1.ReasonInstallationStatusUnknown, cond.Reason)
184-
require.Equal(t, "bundledeployment status is unknown", cond.Message)
185-
186-
verifyInvariants(ctx, t, reconciler.Client, clusterExtension)
187-
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1alpha1.ClusterExtension{}))
188-
}
189-
190131
func TestClusterExtensionChannelVersionExists(t *testing.T) {
191132
cl, reconciler := newClientAndReconciler(t)
192133
mockUnpacker := unpacker.(*MockUnpacker)
@@ -221,7 +162,7 @@ func TestClusterExtensionChannelVersionExists(t *testing.T) {
221162
t.Log("By running reconcile")
222163
res, err := reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
223164
require.Equal(t, ctrl.Result{}, res)
224-
require.NoError(t, err, nil)
165+
require.NoError(t, err)
225166

226167
t.Log("By fetching updated cluster extension after reconcile")
227168
require.NoError(t, cl.Get(ctx, extKey, clusterExtension))
@@ -247,8 +188,13 @@ func TestClusterExtensionChannelVersionExists(t *testing.T) {
247188
}
248189

249190
func TestClusterExtensionChannelExistsNoVersion(t *testing.T) {
250-
t.Skip("Skip and replace with e2e for BundleDeployment")
251191
cl, reconciler := newClientAndReconciler(t)
192+
mockUnpacker := unpacker.(*MockUnpacker)
193+
// Set up the Unpack method to return a result with StateUnpacked
194+
mockUnpacker.On("Unpack", mock.Anything, mock.AnythingOfType("*v1alpha2.BundleDeployment")).Return(&source.Result{
195+
State: source.StatePending,
196+
}, nil)
197+
252198
ctx := context.Background()
253199
extKey := types.NamespacedName{Name: fmt.Sprintf("cluster-extension-test-%s", rand.String(8))}
254200

@@ -267,13 +213,15 @@ func TestClusterExtensionChannelExistsNoVersion(t *testing.T) {
267213
InstallNamespace: installNamespace,
268214
},
269215
}
270-
require.NoError(t, cl.Create(ctx, clusterExtension))
216+
err := cl.Create(ctx, clusterExtension)
217+
require.NoError(t, err)
271218

272219
t.Log("It sets resolution success status")
273220
t.Log("By running reconcile")
274221
res, err := reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: extKey})
275222
require.Equal(t, ctrl.Result{}, res)
276223
require.NoError(t, err)
224+
277225
t.Log("By fetching updated cluster extension after reconcile")
278226
require.NoError(t, cl.Get(ctx, extKey, clusterExtension))
279227

@@ -282,27 +230,18 @@ func TestClusterExtensionChannelExistsNoVersion(t *testing.T) {
282230
require.Empty(t, clusterExtension.Status.InstalledBundle)
283231

284232
t.Log("By checking the expected conditions")
285-
cond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1alpha1.TypeResolved)
286-
require.NotNil(t, cond)
287-
require.Equal(t, metav1.ConditionTrue, cond.Status)
288-
require.Equal(t, ocv1alpha1.ReasonSuccess, cond.Reason)
289-
require.Equal(t, "resolved to \"quay.io/operatorhubio/[email protected]\"", cond.Message)
290-
cond = apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1alpha1.TypeInstalled)
291-
require.NotNil(t, cond)
292-
require.Equal(t, metav1.ConditionUnknown, cond.Status)
293-
require.Equal(t, ocv1alpha1.ReasonInstallationStatusUnknown, cond.Reason)
294-
require.Equal(t, "bundledeployment status is unknown", cond.Message)
233+
resolvedCond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, ocv1alpha1.TypeResolved)
234+
require.NotNil(t, resolvedCond)
235+
require.Equal(t, metav1.ConditionTrue, resolvedCond.Status)
236+
require.Equal(t, ocv1alpha1.ReasonSuccess, resolvedCond.Reason)
237+
require.Equal(t, "resolved to \"quay.io/operatorhubio/[email protected]\"", resolvedCond.Message)
295238

296-
t.Log("By fetching the bundledeployment")
297-
bd := &rukpakv1alpha2.BundleDeployment{}
298-
require.NoError(t, cl.Get(ctx, types.NamespacedName{Name: extKey.Name}, bd))
299-
require.Equal(t, "core-rukpak-io-registry", bd.Spec.ProvisionerClassName)
300-
require.Equal(t, installNamespace, bd.Spec.InstallNamespace)
301-
require.Equal(t, rukpakv1alpha2.SourceTypeImage, bd.Spec.Source.Type)
302-
require.NotNil(t, bd.Spec.Source.Image)
303-
require.Equal(t, "quay.io/operatorhubio/[email protected]", bd.Spec.Source.Image.Ref)
239+
t.Log("By checking the expected unpacked conditions")
240+
unpackedCond := apimeta.FindStatusCondition(clusterExtension.Status.Conditions, rukpakv1alpha2.TypeUnpacked)
241+
require.NotNil(t, unpackedCond)
242+
require.Equal(t, metav1.ConditionFalse, unpackedCond.Status)
243+
require.Equal(t, rukpakv1alpha2.ReasonUnpackPending, unpackedCond.Reason)
304244

305-
verifyInvariants(ctx, t, reconciler.Client, clusterExtension)
306245
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1alpha1.ClusterExtension{}))
307246
}
308247

@@ -476,10 +415,14 @@ func verifyConditionsInvariants(t *testing.T, ext *ocv1alpha1.ClusterExtension)
476415

477416
func TestClusterExtensionUpgrade(t *testing.T) {
478417
cl, reconciler := newClientAndReconciler(t)
418+
mockUnpacker := unpacker.(*MockUnpacker)
419+
// Set up the Unpack method to return a result with StateUnpacked
420+
mockUnpacker.On("Unpack", mock.Anything, mock.AnythingOfType("*v1alpha2.BundleDeployment")).Return(&source.Result{
421+
State: source.StatePending,
422+
}, nil)
479423
ctx := context.Background()
480424

481425
t.Run("semver upgrade constraints enforcement of upgrades within major version", func(t *testing.T) {
482-
t.Skip("Skip and replace with e2e for BundleDeployment")
483426
defer featuregatetesting.SetFeatureGateDuringTest(t, features.OperatorControllerFeatureGate, features.ForceSemverUpgradeConstraints, true)()
484427
defer func() {
485428
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1alpha1.ClusterExtension{}))
@@ -573,7 +516,6 @@ func TestClusterExtensionUpgrade(t *testing.T) {
573516
})
574517

575518
t.Run("legacy semantics upgrade constraints enforcement", func(t *testing.T) {
576-
t.Skip("Skip and replace with e2e for BundleDeployment")
577519
defer featuregatetesting.SetFeatureGateDuringTest(t, features.OperatorControllerFeatureGate, features.ForceSemverUpgradeConstraints, false)()
578520
defer func() {
579521
require.NoError(t, cl.DeleteAllOf(ctx, &ocv1alpha1.ClusterExtension{}))
@@ -667,7 +609,6 @@ func TestClusterExtensionUpgrade(t *testing.T) {
667609
})
668610

669611
t.Run("ignore upgrade constraints", func(t *testing.T) {
670-
t.Skip("Skip and replace with e2e for BundleDeployment")
671612
for _, tt := range []struct {
672613
name string
673614
flagState bool
@@ -754,10 +695,14 @@ func TestClusterExtensionUpgrade(t *testing.T) {
754695

755696
func TestClusterExtensionDowngrade(t *testing.T) {
756697
cl, reconciler := newClientAndReconciler(t)
698+
mockUnpacker := unpacker.(*MockUnpacker)
699+
// Set up the Unpack method to return a result with StateUnpacked
700+
mockUnpacker.On("Unpack", mock.Anything, mock.AnythingOfType("*v1alpha2.BundleDeployment")).Return(&source.Result{
701+
State: source.StatePending,
702+
}, nil)
757703
ctx := context.Background()
758704

759705
t.Run("enforce upgrade constraints", func(t *testing.T) {
760-
t.Skip("Skip and replace with e2e for BundleDeployment")
761706
for _, tt := range []struct {
762707
name string
763708
flagState bool
@@ -840,7 +785,6 @@ func TestClusterExtensionDowngrade(t *testing.T) {
840785
})
841786

842787
t.Run("ignore upgrade constraints", func(t *testing.T) {
843-
t.Skip("Skip and replace with e2e for BundleDeployment")
844788
for _, tt := range []struct {
845789
name string
846790
flagState bool

0 commit comments

Comments
 (0)