Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master

shrike
Jenkins 2017-11-19 15:17:12 +00:00
commit a36a2c1796
3 changed files with 19 additions and 24 deletions

View File

@ -24,7 +24,7 @@ class Notification < ApplicationRecord
favourite: 'Favourite', favourite: 'Favourite',
}.freeze }.freeze
STATUS_INCLUDES = [:account, :stream_entry, :media_attachments, :tags, mentions: :account, reblog: [:stream_entry, :account, :media_attachments, :tags, mentions: :account]].freeze STATUS_INCLUDES = [:account, :application, :stream_entry, :media_attachments, :tags, mentions: :account, reblog: [:stream_entry, :account, :application, :media_attachments, :tags, mentions: :account]].freeze
belongs_to :account belongs_to :account
belongs_to :from_account, class_name: 'Account' belongs_to :from_account, class_name: 'Account'
@ -55,9 +55,11 @@ class Notification < ApplicationRecord
def target_status def target_status
case type case type
when :reblog when :reblog
activity&.reblog status&.reblog
when :favourite, :mention when :favourite
activity&.status favourite&.status
when :mention
mention&.status
end end
end end

View File

@ -18,7 +18,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
actor = ActivityPub::TagManager.instance.uri_to_resource(actor_id, Account) actor = ActivityPub::TagManager.instance.uri_to_resource(actor_id, Account)
actor = ActivityPub::FetchRemoteAccountService.new.call(actor_id, id: true) if actor.nil? || needs_update(actor) actor = ActivityPub::FetchRemoteAccountService.new.call(actor_id, id: true) if actor.nil? || needs_update(actor)
return if actor.suspended? return if actor.nil? || actor.suspended?
ActivityPub::Activity.factory(activity_json, actor).perform ActivityPub::Activity.factory(activity_json, actor).perform
end end

View File

@ -6,23 +6,18 @@ RSpec.describe Notification, type: :model do
end end
describe '#target_status' do describe '#target_status' do
before do let(:notification) { Fabricate(:notification, activity_type: type, activity: activity) }
allow(notification).to receive(:type).and_return(type) let(:status) { Fabricate(:status) }
allow(notification).to receive(:activity).and_return(activity) let(:reblog) { Fabricate(:status, reblog: status) }
end let(:favourite) { Fabricate(:favourite, status: status) }
let(:mention) { Fabricate(:mention, status: status) }
let(:notification) { Fabricate(:notification) }
let(:status) { instance_double('Status') }
let(:favourite) { instance_double('Favourite') }
let(:mention) { instance_double('Mention') }
context 'type is :reblog' do context 'type is :reblog' do
let(:type) { :reblog } let(:type) { :reblog }
let(:activity) { status } let(:activity) { reblog }
it 'calls activity.reblog' do it 'returns status' do
expect(activity).to receive(:reblog) expect(notification.target_status).to eq status
notification.target_status
end end
end end
@ -30,9 +25,8 @@ RSpec.describe Notification, type: :model do
let(:type) { :favourite } let(:type) { :favourite }
let(:activity) { favourite } let(:activity) { favourite }
it 'calls activity.status' do it 'returns status' do
expect(activity).to receive(:status) expect(notification.target_status).to eq status
notification.target_status
end end
end end
@ -40,9 +34,8 @@ RSpec.describe Notification, type: :model do
let(:type) { :mention } let(:type) { :mention }
let(:activity) { mention } let(:activity) { mention }
it 'calls activity.status' do it 'returns status' do
expect(activity).to receive(:status) expect(notification.target_status).to eq status
notification.target_status
end end
end end
end end