package reconcile import ( "testing" assertapi "github.com/stretchr/testify/assert" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) // Not using fobject to avoid test import cycle type fakeStatus struct { RequestStatus `json:",inline"` } type fakeObj struct { Annotations map[string]string Status fakeStatus } func (f fakeObj) GetObjectKind() schema.ObjectKind { return schema.EmptyObjectKind } func (f fakeObj) DeepCopyObject() runtime.Object { return f } func TestGetStatusLastHandledReconcileAt(t *testing.T) { assert := assertapi.New(t) // Get unset status lastHandledReconcileAt. obj := &fakeObj{Annotations: map[string]string{}} _, err := GetStatusLastHandledReconcileAt(obj) if assert.Error(err) { assert.ErrorIs(err, ErrLastHandledReconcileAtNotFound) } // Get set status lastHandledReconcileAt. obj.Status.LastHandledReconcileAt = "foo" ra, err := GetStatusLastHandledReconcileAt(obj) assert.NoError(err) assert.Equal("foo", ra) } func TestSetStatusLastHandledReconcileAt(t *testing.T) { assert := assertapi.New(t) obj := &fakeObj{Annotations: map[string]string{}} err := SetStatusLastHandledReconcileAt(obj, "now") assert.NoError(err) assert.Equal("now", obj.Status.RequestStatus.LastHandledReconcileAt) }