From 15d6a2a728c8824944bfa920cb9bbd9bda204515 Mon Sep 17 00:00:00 2001 From: Deluan Date: Mon, 7 Sep 2026 19:10:31 -0400 Subject: [PATCH] fix(persistence): make the UpdateImage/Put guard test a real guard The user object was fetched after UpdateImage, so its in-memory UploadedImage already matched and Put's structs:"-" tag was never exercised. Fetch the stale object first and assert the DB value it would have clobbered survives. --- persistence/user_repository_test.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/persistence/user_repository_test.go b/persistence/user_repository_test.go index 69f136a15..c6702db79 100644 --- a/persistence/user_repository_test.go +++ b/persistence/user_repository_test.go @@ -107,16 +107,18 @@ var _ = Describe("UserRepository", func() { }) It("is not erased by a later full-row Put", func() { - Expect(repo.UpdateImage(adminUser.ID, "u1_admin.png")).To(Succeed()) + // Fetched before UpdateImage, so its in-memory UploadedImage is stale: Put must not write it back. + stale, err := repo.Get(adminUser.ID) + Expect(err).ToNot(HaveOccurred()) + + Expect(repo.UpdateImage(adminUser.ID, "u2_admin.png")).To(Succeed()) + + stale.Name = "Renamed" + Expect(repo.Put(stale)).To(Succeed()) usr, err := repo.Get(adminUser.ID) Expect(err).ToNot(HaveOccurred()) - usr.Name = "Renamed" - Expect(repo.Put(usr)).To(Succeed()) - - usr, err = repo.Get(adminUser.ID) - Expect(err).ToNot(HaveOccurred()) - Expect(usr.UploadedImage).To(Equal("u1_admin.png")) + Expect(usr.UploadedImage).To(Equal("u2_admin.png")) }) It("clears the filename when given an empty string", func() {