diff options
author | valerauko <vale@valerauko.net> | 2018-11-26 00:35:21 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-11-25 16:35:21 +0100 |
commit | db9aea34dead1b230e44b4235ff8af8100108b7f (patch) | |
tree | eb88e37c6ff1af9074878c4428e1c8e87224a3e9 | |
parent | 180ae0472a3ff2c0c4a59733f78c87cb6e2004d7 (diff) |
Ensure replied-to is a status not a boost (#9129)
* Ensure replied-to is a status not a boost * Consider case of not a reply * Add test case for replying to boost * Move reblog-reply resolution to model * Remove unnecessary comment
-rw-r--r-- | app/models/status.rb | 2 | ||||
-rw-r--r-- | spec/services/post_status_service_spec.rb | 13 |
2 files changed, 15 insertions, 0 deletions
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) |