Merge pull request #126727 from jpbetz/fix-fake-apply-name

Stamp fake client apply reuqests with name from action

Kubernetes-commit: 45804907d2025747452ac2573a60d330cc930a49
This commit is contained in:
Kubernetes Publisher 2024-08-29 16:49:45 +01:00
commit 9db830e3b0
2 changed files with 23 additions and 1 deletions

View File

@ -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

View File

@ -294,12 +294,33 @@ 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"})
}
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.Fatalf("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()