From 908d899011ae088b6395c598c81f3ed79ea3424d Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Thu, 15 Aug 2024 21:24:28 -0400 Subject: [PATCH 1/2] Stamp fake client apply reuqests with name from action Kubernetes-commit: 5f1c7ae6346f9028fef77b76e5555aa37f1fc39a --- testing/fixture.go | 1 + testing/fixture_test.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/testing/fixture.go b/testing/fixture.go index d288a3aa..15b3e533 100644 --- a/testing/fixture.go +++ b/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/testing/fixture_test.go b/testing/fixture_test.go index e2a5ea8f..606cccc9 100644 --- a/testing/fixture_test.go +++ b/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() From 86c96117c63b3084615d9a83a1b907cd97142ef1 Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Mon, 19 Aug 2024 11:18:04 -0400 Subject: [PATCH 2/2] Use Fatalf for non-recoverable errors in test Kubernetes-commit: 5784e58446b7dd2aca0af0e84e43395c9391ae03 --- testing/fixture_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/fixture_test.go b/testing/fixture_test.go index 606cccc9..f950bd69 100644 --- a/testing/fixture_test.go +++ b/testing/fixture_test.go @@ -294,7 +294,7 @@ func TestApplyCreate(t *testing.T) { handled, configMap, err := reaction(action) assert.True(t, handled) if err != nil { - t.Errorf("Failed to create a resource with apply: %v", err) + t.Fatalf("Failed to create a resource with apply: %v", err) } cm := configMap.(*v1.ConfigMap) assert.Equal(t, cm.Data, map[string]string{"k": "v"}) @@ -314,7 +314,7 @@ func TestApplyNoMeta(t *testing.T) { handled, configMap, err := reaction(action) assert.True(t, handled) if err != nil { - t.Errorf("Failed to create a resource with apply: %v", err) + t.Fatalf("Failed to create a resource with apply: %v", err) } cm := configMap.(*v1.ConfigMap) assert.Equal(t, "cm-1", cm.Name)