@@ -851,6 +851,47 @@ var _ = Describe("Fake client", func() {
851
851
err = cl .Get (context .Background (), namespacedName , obj )
852
852
Expect (apierrors .IsNotFound (err )).To (BeTrue ())
853
853
})
854
+
855
+ It ("should remove finalizers of the object on Patch" , func () {
856
+ namespacedName := types.NamespacedName {
857
+ Name : "test-cm" ,
858
+ Namespace : "patch-finalizers-in-obj" ,
859
+ }
860
+ By ("Creating a new object" )
861
+ obj := & corev1.ConfigMap {
862
+ ObjectMeta : metav1.ObjectMeta {
863
+ Name : namespacedName .Name ,
864
+ Namespace : namespacedName .Namespace ,
865
+ Finalizers : []string {"finalizers.sigs.k8s.io/test" },
866
+ },
867
+ Data : map [string ]string {
868
+ "test-key" : "new-value" ,
869
+ },
870
+ }
871
+ err := cl .Create (context .Background (), obj )
872
+ Expect (err ).To (BeNil ())
873
+
874
+ By ("Removing the finalizer" )
875
+ mergePatch , err := json .Marshal (map [string ]interface {}{
876
+ "metadata" : map [string ]interface {}{
877
+ "$deleteFromPrimitiveList/finalizers" : []string {
878
+ "finalizers.sigs.k8s.io/test" ,
879
+ },
880
+ },
881
+ })
882
+ Expect (err ).To (BeNil ())
883
+ err = cl .Patch (context .Background (), obj , client .RawPatch (types .StrategicMergePatchType , mergePatch ))
884
+ Expect (err ).To (BeNil ())
885
+
886
+ By ("Check the finalizer has been removed in the object" )
887
+ Expect (len (obj .Finalizers )).To (Equal (0 ))
888
+
889
+ By ("Check the finalizer has been removed in client" )
890
+ newObj := & corev1.ConfigMap {}
891
+ err = cl .Get (context .Background (), namespacedName , newObj )
892
+ Expect (err ).To (BeNil ())
893
+ Expect (len (newObj .Finalizers )).To (Equal (0 ))
894
+ })
854
895
}
855
896
856
897
Context ("with default scheme.Scheme" , func () {
0 commit comments