diff --git a/pkg/finalizer/finalizer.go b/pkg/finalizer/finalizer.go index 5d242e9faa..cb796192bd 100644 --- a/pkg/finalizer/finalizer.go +++ b/pkg/finalizer/finalizer.go @@ -21,8 +21,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" ) -func NewFinalizers() (Finalizers, error) { - return finalizers(map[string]Finalizer{}), nil +func NewFinalizers() Finalizers { + return finalizers(map[string]Finalizer{}) } func (f finalizers) Register(key string, finalizer Finalizer) error { diff --git a/pkg/finalizer/finalizer_test.go b/pkg/finalizer/finalizer_test.go new file mode 100644 index 0000000000..0b5ea3ee8a --- /dev/null +++ b/pkg/finalizer/finalizer_test.go @@ -0,0 +1,50 @@ +package finalizer + +import ( + "context" + "testing" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/envtest/printer" +) + +type mockFinalizer struct{} + +func (f mockFinalizer) Finalize(context.Context, client.Object) (needsUpdate bool, err error) { + return true, nil +} +func TestFinalizer(t *testing.T) { + RegisterFailHandler(Fail) + suiteName := "Finalizer Suite" + RunSpecsWithDefaultAndCustomReporters(t, suiteName, []Reporter{printer.NewlineReporter{}, printer.NewProwReporter(suiteName)}) +} + +var _ = Describe("TestFinalizer", func() { + Describe("Finalizer", func() { + It("should return no error", func() { + var err error + now := metav1.Now() + pod := &corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Finalizers: []string{"finalizers.sigs.k8s.io/testfinalizer"}, + DeletionTimestamp: &now, + }, + } + + finalizers := NewFinalizers() + + f := mockFinalizer{} + + err = finalizers.Register("finalizers.sigs.k8s.io/testfinalizer", f) + Expect(err).To(BeNil()) + + ret, err := finalizers.Finalize(context.TODO(), pod) + Expect(err).To(BeNil()) + Expect(ret).To(BeTrue()) + }) + }) +})