diff --git a/app/services/post_owner_changer.rb b/app/services/post_owner_changer.rb index 785c2cf97b5..7b6929c5d40 100644 --- a/app/services/post_owner_changer.rb +++ b/app/services/post_owner_changer.rb @@ -38,6 +38,9 @@ class PostOwnerChanger first_post_created_at: @new_owner.reload.posts.order('created_at ASC').first&.created_at ) + Post.where(topic_id: @topic.id, reply_to_post_number: post.post_number) + .update_all(reply_to_user_id: @new_owner.id) + @topic.save!(validate: false) end end diff --git a/spec/services/post_owner_changer_spec.rb b/spec/services/post_owner_changer_spec.rb index a6c4d3a8569..1b34f9b7c3b 100644 --- a/spec/services/post_owner_changer_spec.rb +++ b/spec/services/post_owner_changer_spec.rb @@ -235,6 +235,17 @@ describe PostOwnerChanger do expect(stats[1].action_type).to eq(UserAction::REPLY) expect(stats[1].count).to eq(1) end + + it "updates reply_to_user_id" do + p4 = Fabricate(:post, topic: topic, reply_to_post_number: p1.post_number, reply_to_user_id: p1.user_id) + p5 = Fabricate(:post, topic: topic, reply_to_post_number: p2.post_number, reply_to_user_id: p2.user_id) + + PostOwnerChanger.new(post_ids: [p1.id], topic_id: topic.id, new_owner: user_a, acting_user: editor).change_owner! + p4.reload; p5.reload + + expect(p4.reply_to_user_id).to eq(user_a.id) + expect(p5.reply_to_user_id).to eq(p2.user_id) + end end end end