@@ -43,13 +43,13 @@ var _ = Describe("TestFinalizer", func() {
43
43
Expect (f ).NotTo (BeNil ())
44
44
45
45
})
46
- Describe ("Finalizer helper library " , func () {
47
- It ("Register should successfully register a finalizer" , func () {
46
+ Describe ("Register " , func () {
47
+ It ("successfully registers a finalizer" , func () {
48
48
err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
49
49
Expect (err ).To (BeNil ())
50
50
})
51
51
52
- It ("Register should return an error when it is called twice with the same key " , func () {
52
+ It ("should fail when trying to register a finalizer that was already registered " , func () {
53
53
err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
54
54
Expect (err ).To (BeNil ())
55
55
@@ -59,31 +59,72 @@ var _ = Describe("TestFinalizer", func() {
59
59
Expect (err .Error ()).To (ContainSubstring ("already registered" ))
60
60
61
61
})
62
-
63
- It ("Finalize should return no error and indicate false for needsUpdate if a finalizer is not registered" , func () {
62
+ })
63
+ Describe ("Finalize" , func () {
64
+ It ("should return no error and return false for needsUpdate if a finalizer is not registered" , func () {
64
65
ret , err := finalizers .Finalize (context .TODO (), pod )
65
66
Expect (err ).To (BeNil ())
66
67
Expect (ret ).To (BeFalse ())
67
68
})
68
69
69
- It ("Finalize should return no error when deletion timestamp is not nil and the finalizer exists" , func () {
70
+ It ("successfully finalizes and returns true for needsUpdate when deletion timestamp is nil and finalizer does not exist" , func () {
71
+ err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
72
+ Expect (err ).To (BeNil ())
73
+
74
+ pod .DeletionTimestamp = nil
75
+ pod .Finalizers = []string {}
76
+
77
+ needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
78
+ Expect (err ).To (BeNil ())
79
+ Expect (needsUpdate ).To (BeTrue ())
80
+ })
81
+
82
+ It ("successfully finalizes and returns true for needsUpdate when deletion timestamp is not nil and the finalizer exists" , func () {
70
83
now := metav1 .Now ()
71
84
pod .DeletionTimestamp = & now
72
85
73
86
err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
74
87
Expect (err ).To (BeNil ())
75
88
76
- _ , err := finalizers .Finalize (context .TODO (), pod )
89
+ pod .Finalizers = []string {"finalizers.sigs.k8s.io/testfinalizer" }
90
+
91
+ needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
77
92
Expect (err ).To (BeNil ())
93
+ Expect (needsUpdate ).To (BeTrue ())
78
94
})
79
95
80
- It ("Finalize should return no error when deletion timestamp is nil and finalizer does not exist" , func () {
81
- err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
96
+ It ("should return no error and return false for needsUpdate when deletion timestamp is nil and finalizer doesn't exist" , func () {
97
+ pod .DeletionTimestamp = nil
98
+ pod .Finalizers = []string {}
99
+
100
+ needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
82
101
Expect (err ).To (BeNil ())
102
+ Expect (needsUpdate ).To (BeFalse ())
103
+ })
83
104
84
- pod .DeletionTimestamp = nil
105
+ It ("should return no error and return false for needsUpdate when deletion timestamp is not nil and the finalizer doesn't exist" , func () {
106
+ now := metav1 .Now ()
107
+ pod .DeletionTimestamp = & now
85
108
pod .Finalizers = []string {}
86
109
110
+ needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
111
+ Expect (err ).To (BeNil ())
112
+ Expect (needsUpdate ).To (BeFalse ())
113
+
114
+ })
115
+
116
+ It ("successfully finalizes multiple finalizers and returns true for needsUpdate when deletion timestamp is not nil and the finalizer exists" , func () {
117
+ now := metav1 .Now ()
118
+ pod .DeletionTimestamp = & now
119
+
120
+ err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
121
+ Expect (err ).To (BeNil ())
122
+
123
+ err = finalizers .Register ("finalizers.sigs.k8s.io/newtestfinalizer" , f )
124
+ Expect (err ).To (BeNil ())
125
+
126
+ pod .Finalizers = []string {"finalizers.sigs.k8s.io/testfinalizer" , "finalizers.sigs.k8s.io/newtestfinalizer" }
127
+
87
128
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
88
129
Expect (err ).To (BeNil ())
89
130
Expect (needsUpdate ).To (BeTrue ())
0 commit comments