Fix change of status callbacks not setting in_reply_to_account_id and (#3072)
possibly others when expected. Add some tests for it
This commit is contained in:
parent
85c9496340
commit
af706583bd
|
@ -72,7 +72,7 @@ class Status < ApplicationRecord
|
||||||
cache_associated :account, :application, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :application, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account
|
cache_associated :account, :application, :media_attachments, :tags, :stream_entry, mentions: :account, reblog: [:account, :application, :stream_entry, :tags, :media_attachments, mentions: :account], thread: :account
|
||||||
|
|
||||||
def reply?
|
def reply?
|
||||||
!in_reply_to_id.nil? || super
|
!in_reply_to_id.nil? || attributes['reply']
|
||||||
end
|
end
|
||||||
|
|
||||||
def local?
|
def local?
|
||||||
|
@ -144,9 +144,9 @@ class Status < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
before_validation :prepare_contents
|
before_validation :prepare_contents
|
||||||
before_create :set_reblog
|
before_validation :set_reblog
|
||||||
before_create :set_visibility
|
before_validation :set_visibility
|
||||||
before_create :set_conversation
|
before_validation :set_conversation
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def in_allowed_languages(account)
|
def in_allowed_languages(account)
|
||||||
|
|
|
@ -31,6 +31,16 @@ RSpec.describe ProcessFeedService do
|
||||||
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=2:objectType=Status')).to_not be_nil
|
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=2:objectType=Status')).to_not be_nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'marks replies as replies' do
|
||||||
|
status = Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=2:objectType=Status')
|
||||||
|
expect(status.reply?).to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets account being replied to when possible' do
|
||||||
|
status = Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=2:objectType=Status')
|
||||||
|
expect(status.in_reply_to_account_id).to eq status.account_id
|
||||||
|
end
|
||||||
|
|
||||||
it 'ignores delete statuses unless they existed before' do
|
it 'ignores delete statuses unless they existed before' do
|
||||||
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=3:objectType=Status')).to be_nil
|
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=3:objectType=Status')).to be_nil
|
||||||
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=12:objectType=Status')).to be_nil
|
expect(Status.find_by(uri: 'tag:kickass.zone,2016-10-10:objectId=12:objectType=Status')).to be_nil
|
||||||
|
|
Reference in a new issue