Skip to content

Commit

Permalink
Ensure replied-to is a status not a boost (mastodon#9129)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
valerauko authored and hiyuki2578 committed Oct 2, 2019
1 parent 2389f03 commit 53c2174
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/models/status.rb
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,8 @@ def set_visibility
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?
Expand Down
13 changes: 13 additions & 0 deletions spec/services/post_status_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,19 @@
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)

Expand Down

0 comments on commit 53c2174

Please sign in to comment.