github.com/verrazzano/verrazzano@v1.7.1/pkg/kubectlutil/kubectlutil_test.go (about)

     1  // Copyright (c) 2023, Oracle and/or its affiliates.
     2  // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
     3  
     4  package kubectlutil_test
     5  
     6  import (
     7  	"github.com/google/go-cmp/cmp"
     8  	"github.com/verrazzano/verrazzano/pkg/kubectlutil"
     9  	"github.com/verrazzano/verrazzano/platform-operator/apis/verrazzano/v1beta1"
    10  	v1 "k8s.io/api/core/v1"
    11  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    12  	"testing"
    13  )
    14  
    15  func TestSetLastAppliedConfigurationAnnotation(t *testing.T) {
    16  	vz := &v1beta1.Verrazzano{
    17  		ObjectMeta: metav1.ObjectMeta{},
    18  		Spec:       v1beta1.VerrazzanoSpec{},
    19  	}
    20  
    21  	err := kubectlutil.SetLastAppliedConfigurationAnnotation(vz)
    22  	if err != nil {
    23  		t.Errorf("expected no error, got error %v", err)
    24  	}
    25  
    26  	value, ok := vz.Annotations[v1.LastAppliedConfigAnnotation]
    27  	if !ok {
    28  		t.Errorf("expected "+v1.LastAppliedConfigAnnotation+" , not found on object %v", vz)
    29  	}
    30  	expected := "{\"metadata\":{\"creationTimestamp\":null},\"spec\":{\"components\":{},\"security\":{}},\"status\":{}}\n"
    31  	if diff := cmp.Diff(expected, value); diff != "" {
    32  		t.Errorf("expected %v, got %v instead", expected, value)
    33  		t.Logf("Difference: %s", diff)
    34  	}
    35  }