Browse Source

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
pull/4/head
valerauko 5 years ago
committed by Eugen Rochko
parent
commit
db9aea34de
2 changed files with 15 additions and 0 deletions
  1. +2
    -0
      app/models/status.rb
  2. +13
    -0
      spec/services/post_status_service_spec.rb

+ 2
- 0
app/models/status.rb View File

@ -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?

+ 13
- 0
spec/services/post_status_service_spec.rb View File

@ -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)

Loading…
Cancel
Save