diff --git a/app/models/status.rb b/app/models/status.rb index 0449d33e1..2e894a6f1 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -445,6 +445,8 @@ class Status < ApplicationRecord end def set_conversation + self.thread = thread.reblog if thread&.reblog? + self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply if reply? && !thread.nil? diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 40fa8fbef..349ad861b 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -25,6 +25,19 @@ RSpec.describe PostStatusService, type: :service do expect(status.thread).to eq in_reply_to_status end + it 'creates response to the original status of boost' do + boosted_status = Fabricate(:status) + in_reply_to_status = Fabricate(:status, reblog: boosted_status) + account = Fabricate(:account) + text = "test status update" + + status = subject.call(account, text, in_reply_to_status) + + expect(status).to be_persisted + expect(status.text).to eq text + expect(status.thread).to eq boosted_status + end + it 'creates a sensitive status' do status = create_status_with_options(sensitive: true)