Skip to content

Commit fa1f7f8

Browse files
committed
Reset resource version if fake client Create call failed
Signed-off-by: Muvaffak Onus <[email protected]>
1 parent a457e27 commit fa1f7f8

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

pkg/client/fake/client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,11 @@ func (t versionedTracker) Create(gvr schema.GroupVersionResource, obj runtime.Ob
9696
return apierrors.NewBadRequest("resourceVersion can not be set for Create requests")
9797
}
9898
accessor.SetResourceVersion("1")
99-
return t.ObjectTracker.Create(gvr, obj, ns)
99+
if err := t.ObjectTracker.Create(gvr, obj, ns); err != nil {
100+
accessor.SetResourceVersion("")
101+
return err
102+
}
103+
return nil
100104
}
101105

102106
func (t versionedTracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns string) error {

pkg/client/fake/client_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,14 @@ var _ = Describe("Fake client", func() {
186186
Expect(apierrors.IsBadRequest(err)).To(BeTrue())
187187
})
188188

189+
It("should not change the submitted object if Create failed", func() {
190+
By("Trying to create an existing configmap")
191+
submitted := cm.DeepCopy()
192+
err := cl.Create(context.Background(), submitted)
193+
Expect(apierrors.IsAlreadyExists(err)).To(BeTrue())
194+
Expect(submitted).To(Equal(cm))
195+
})
196+
189197
It("should error on Create with empty Name", func() {
190198
By("Creating a new configmap")
191199
newcm := &corev1.ConfigMap{

0 commit comments

Comments
 (0)