Skip to content

Commit

Permalink
Use server side apply to update test resource
Browse files Browse the repository at this point in the history
Signed-off-by: Mikalai Radchuk <mradchuk@redhat.com>
  • Loading branch information
m1kola committed Apr 26, 2024
1 parent 265d60d commit ab7ddfa
Showing 1 changed file with 28 additions and 5 deletions.
33 changes: 28 additions & 5 deletions test/e2e/cluster_extension_admission_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"

ocv1alpha1 "github.com/operator-framework/operator-controller/api/v1alpha1"
)

func TestClusterExtensionPackageUniqueness(t *testing.T) {
ctx := context.Background()
fieldOwner := client.FieldOwner("operator-controller-e2e")

deleteClusterExtension := func(clusterExtension *ocv1alpha1.ClusterExtension) {
require.NoError(t, c.Delete(ctx, clusterExtension))
Expand Down Expand Up @@ -64,12 +66,33 @@ func TestClusterExtensionPackageUniqueness(t *testing.T) {
defer deleteClusterExtension(clusterExtension2)

t.Log("update second resource with package which already exists on the cluster")
clusterExtension2.Spec.PackageName = firstResourcePackageName
err = c.Update(ctx, clusterExtension2)
intent := &ocv1alpha1.ClusterExtension{
TypeMeta: metav1.TypeMeta{
APIVersion: ocv1alpha1.GroupVersion.String(),
Kind: "ClusterExtension",
},
ObjectMeta: metav1.ObjectMeta{
Name: clusterExtension2.Name,
},
Spec: ocv1alpha1.ClusterExtensionSpec{
PackageName: firstResourcePackageName,
},
}
err = c.Patch(ctx, intent, client.Apply, client.ForceOwnership, fieldOwner)
require.ErrorContains(t, err, fmt.Sprintf("Package %q is already installed via ClusterExtension %q", firstResourcePackageName, firstResourceName))

t.Log("update second resource with package which does not exist on the cluster")
require.NoError(t, c.Get(ctx, types.NamespacedName{Name: clusterExtension2.Name}, clusterExtension2))
clusterExtension2.Spec.PackageName = "package3"
require.NoError(t, c.Update(ctx, clusterExtension2))
intent = &ocv1alpha1.ClusterExtension{
TypeMeta: metav1.TypeMeta{
APIVersion: ocv1alpha1.GroupVersion.String(),
Kind: "ClusterExtension",
},
ObjectMeta: metav1.ObjectMeta{
Name: clusterExtension2.Name,
},
Spec: ocv1alpha1.ClusterExtensionSpec{
PackageName: "package3",
},
}
require.NoError(t, c.Patch(ctx, intent, client.Apply, client.ForceOwnership, fieldOwner))
}

0 comments on commit ab7ddfa

Please sign in to comment.