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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user