From 5f1c7ae6346f9028fef77b76e5555aa37f1fc39a Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Thu, 15 Aug 2024 21:24:28 -0400 Subject: [PATCH] Stamp fake client apply reuqests with name from action --- .../src/k8s.io/client-go/testing/fixture.go | 1 + .../k8s.io/client-go/testing/fixture_test.go | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/staging/src/k8s.io/client-go/testing/fixture.go b/staging/src/k8s.io/client-go/testing/fixture.go index d288a3aa45b..15b3e533481 100644 --- a/staging/src/k8s.io/client-go/testing/fixture.go +++ b/staging/src/k8s.io/client-go/testing/fixture.go @@ -214,6 +214,7 @@ func (o objectTrackerReact) Apply(action PatchActionImpl) (runtime.Object, error if err := yaml.Unmarshal(action.GetPatch(), &patchObj.Object); err != nil { return nil, err } + patchObj.SetName(action.GetName()) err := o.tracker.Apply(gvr, patchObj, ns, action.PatchOptions) if err != nil { return nil, err diff --git a/staging/src/k8s.io/client-go/testing/fixture_test.go b/staging/src/k8s.io/client-go/testing/fixture_test.go index e2a5ea8f35d..606cccc905c 100644 --- a/staging/src/k8s.io/client-go/testing/fixture_test.go +++ b/staging/src/k8s.io/client-go/testing/fixture_test.go @@ -300,6 +300,27 @@ func TestApplyCreate(t *testing.T) { assert.Equal(t, cm.Data, map[string]string{"k": "v"}) } +func TestApplyNoMeta(t *testing.T) { + cmResource := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configMaps"} + scheme := runtime.NewScheme() + scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{}) + codecs := serializer.NewCodecFactory(scheme) + o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme)) + + reaction := ObjectReaction(o) + patch := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "data": {"k": "v"}}`) + action := NewPatchActionWithOptions(cmResource, "default", "cm-1", types.ApplyPatchType, patch, + metav1.PatchOptions{FieldManager: "test-manager"}) + handled, configMap, err := reaction(action) + assert.True(t, handled) + if err != nil { + t.Errorf("Failed to create a resource with apply: %v", err) + } + cm := configMap.(*v1.ConfigMap) + assert.Equal(t, "cm-1", cm.Name) + assert.Equal(t, map[string]string{"k": "v"}, cm.Data) +} + func TestApplyUpdateMultipleFieldManagers(t *testing.T) { cmResource := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configMaps"} scheme := runtime.NewScheme()