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
This commit is contained in:
parent
180ae0472a
commit
db9aea34de
|
@ -445,6 +445,8 @@ class Status < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_conversation
|
def set_conversation
|
||||||
|
self.thread = thread.reblog if thread&.reblog?
|
||||||
|
|
||||||
self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply
|
self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply
|
||||||
|
|
||||||
if reply? && !thread.nil?
|
if reply? && !thread.nil?
|
||||||
|
|
|
@ -25,6 +25,19 @@ RSpec.describe PostStatusService, type: :service do
|
||||||
expect(status.thread).to eq in_reply_to_status
|
expect(status.thread).to eq in_reply_to_status
|
||||||
end
|
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
|
it 'creates a sensitive status' do
|
||||||
status = create_status_with_options(sensitive: true)
|
status = create_status_with_options(sensitive: true)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue