From 2c12c0f88283a4efa4ae47e1f47f326ab9d3fa01 Mon Sep 17 00:00:00 2001
From: Nicolas Dular <ndular@gitlab.com>
Date: Mon, 30 Sep 2024 11:17:23 +0200
Subject: [PATCH] Force syncing updated_by from work item

We want to force update `update_by_id` from the work item side to ensure
it is synced correctly. This aligns the behaviour that we have from the
epic to work item sync.
---
 ee/app/services/concerns/work_items/sync_as_epic.rb | 2 +-
 ee/spec/services/work_items/update_service_spec.rb  | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/ee/app/services/concerns/work_items/sync_as_epic.rb b/ee/app/services/concerns/work_items/sync_as_epic.rb
index 5c52c800afd34..dec2d909591a2 100644
--- a/ee/app/services/concerns/work_items/sync_as_epic.rb
+++ b/ee/app/services/concerns/work_items/sync_as_epic.rb
@@ -57,7 +57,7 @@ def update_params(work_item)
         .index_with { |attr| work_item[attr] }
         .merge(color_params(work_item))
         .merge(dates_params(work_item))
-        .merge(updated_at: work_item.updated_at)
+        .merge(updated_at: work_item.updated_at, updated_by_id: work_item.updated_by_id)
     end
 
     def base_attributes_params(work_item)
diff --git a/ee/spec/services/work_items/update_service_spec.rb b/ee/spec/services/work_items/update_service_spec.rb
index 084c20d5a431b..3822daade1cc4 100644
--- a/ee/spec/services/work_items/update_service_spec.rb
+++ b/ee/spec/services/work_items/update_service_spec.rb
@@ -365,7 +365,10 @@
     end
 
     context 'with a synced epic' do
-      let_it_be(:work_item, refind: true) { create(:work_item, :epic_with_legacy_epic, namespace: group) }
+      let_it_be(:work_item, refind: true) do
+        create(:work_item, :epic_with_legacy_epic, namespace: group, updated_by: create(:user))
+      end
+
       let_it_be(:epic) { work_item.synced_epic }
       let(:start_date) { (Time.current + 1.day).to_date }
       let(:due_date) { (Time.current + 2.days).to_date }
-- 
GitLab