@@ -2,6 +2,7 @@ package utils
22
33import (
44 "encoding/json"
5+ "reflect"
56 "testing"
67
78 corev1 "k8s.io/api/core/v1"
@@ -64,6 +65,44 @@ func TestEncodeManifests(t *testing.T) {
6465 }
6566}
6667
68+ func TestEnsureManifestWorkFinalizer (t * testing.T ) {
69+ tests := []struct {
70+ name string
71+ input []string
72+ wantOutput []string
73+ }{
74+ {
75+ name : "empty finalizers" ,
76+ input : []string {},
77+ wantOutput : []string {workv1 .ManifestWorkFinalizer },
78+ },
79+ {
80+ name : "finalizer already exists" ,
81+ input : []string {"other-finalizer" , workv1 .ManifestWorkFinalizer },
82+ wantOutput : []string {"other-finalizer" , workv1 .ManifestWorkFinalizer },
83+ },
84+ {
85+ name : "finalizer not present" ,
86+ input : []string {"finalizer1" , "finalizer2" },
87+ wantOutput : []string {"finalizer1" , "finalizer2" , workv1 .ManifestWorkFinalizer },
88+ },
89+ {
90+ name : "nil input" ,
91+ input : nil ,
92+ wantOutput : []string {workv1 .ManifestWorkFinalizer },
93+ },
94+ }
95+
96+ for _ , tt := range tests {
97+ t .Run (tt .name , func (t * testing.T ) {
98+ got := EnsureManifestWorkFinalizer (tt .input )
99+ if ! reflect .DeepEqual (got , tt .wantOutput ) {
100+ t .Errorf ("EnsureFinalizers() = %v, want %v" , got , tt .wantOutput )
101+ }
102+ })
103+ }
104+ }
105+
67106func configMap () * corev1.ConfigMap {
68107 return & corev1.ConfigMap {
69108 TypeMeta : metav1.TypeMeta {
0 commit comments