diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/activitypub/activity/announce_spec.rb | 1 | ||||
-rw-r--r-- | spec/lib/activitypub/activity/flag_spec.rb | 23 | ||||
-rw-r--r-- | spec/services/reblog_service_spec.rb | 21 | ||||
-rw-r--r-- | spec/services/report_service_spec.rb | 5 |
4 files changed, 48 insertions, 2 deletions
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb index aa58d9e23..926083a4f 100644 --- a/spec/lib/activitypub/activity/announce_spec.rb +++ b/spec/lib/activitypub/activity/announce_spec.rb @@ -12,6 +12,7 @@ RSpec.describe ActivityPub::Activity::Announce do type: 'Announce', actor: 'https://example.com/actor', object: object_json, + to: 'http://example.com/followers', }.with_indifferent_access end diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb index 3f082a813..ec7359f2f 100644 --- a/spec/lib/activitypub/activity/flag_spec.rb +++ b/spec/lib/activitypub/activity/flag_spec.rb @@ -1,14 +1,15 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Flag do - let(:sender) { Fabricate(:account, domain: 'example.com') } + let(:sender) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') } let(:flagged) { Fabricate(:account) } let(:status) { Fabricate(:status, account: flagged, uri: 'foobar') } + let(:flag_id) { nil } let(:json) do { '@context': 'https://www.w3.org/ns/activitystreams', - id: nil, + id: flag_id, type: 'Flag', content: 'Boo!!', actor: ActivityPub::TagManager.instance.uri_for(sender), @@ -34,4 +35,22 @@ RSpec.describe ActivityPub::Activity::Flag do expect(report.status_ids).to eq [status.id] end end + + describe '#perform with a defined uri' do + subject { described_class.new(json, sender) } + let (:flag_id) { 'http://example.com/reports/1' } + + before do + subject.perform + end + + it 'creates a report' do + report = Report.find_by(account: sender, target_account: flagged) + + expect(report).to_not be_nil + expect(report.comment).to eq 'Boo!!' + expect(report.status_ids).to eq [status.id] + expect(report.uri).to eq flag_id + end + end end diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb index 2755da772..9e66c6643 100644 --- a/spec/services/reblog_service_spec.rb +++ b/spec/services/reblog_service_spec.rb @@ -3,6 +3,27 @@ require 'rails_helper' RSpec.describe ReblogService, type: :service do let(:alice) { Fabricate(:account, username: 'alice') } + context 'creates a reblog with appropriate visibility' do + let(:bob) { Fabricate(:account, username: 'bob') } + let(:visibility) { :public } + let(:reblog_visibility) { :public } + let(:status) { Fabricate(:status, account: bob, visibility: visibility) } + + subject { ReblogService.new } + + before do + subject.call(alice, status, visibility: reblog_visibility) + end + + describe 'boosting privately' do + let(:reblog_visibility) { :private } + + it 'reblogs privately' do + expect(status.reblogs.first.visibility).to eq 'private' + end + end + end + context 'OStatus' do let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com') } let(:status) { Fabricate(:status, account: bob, uri: 'tag:example.com;something:something') } diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index e8b094c89..454e4d896 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -21,6 +21,11 @@ RSpec.describe ReportService, type: :service do subject.call(source_account, remote_account, forward: false) expect(a_request(:post, 'http://example.com/inbox')).to_not have_been_made end + + it 'has an uri' do + report = subject.call(source_account, remote_account, forward: true) + expect(report.uri).to_not be_nil + end end context 'when other reports already exist for the same target' do |