diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-08 10:17:15 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2018-01-08 10:17:15 +0000 |
commit | f839ac694c3f8050e4c7ec84884283e35f6ac662 (patch) | |
tree | 68ab420feffbfc99de00d72f2e6b0beae4a7b7a0 /spec | |
parent | 722b3f567f18ae31b05f320441c73279b4f5ad11 (diff) | |
parent | dbda87c31f7d7ede7312ba422940841d8c96c171 (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/activitypub/follows_controller_spec.rb | 43 | ||||
-rw-r--r-- | spec/lib/activitypub/activity/accept_spec.rb | 53 | ||||
-rw-r--r-- | spec/models/follow_request_spec.rb | 8 |
3 files changed, 20 insertions, 84 deletions
diff --git a/spec/controllers/activitypub/follows_controller_spec.rb b/spec/controllers/activitypub/follows_controller_spec.rb deleted file mode 100644 index 6026cd353..000000000 --- a/spec/controllers/activitypub/follows_controller_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe ActivityPub::FollowsController, type: :controller do - let(:follow_request) { Fabricate(:follow_request, account: account) } - - render_views - - context 'with local account' do - let(:account) { Fabricate(:account, domain: nil) } - - it 'returns follow request' do - signed_request = Request.new(:get, account_follow_url(account, follow_request)) - signed_request.on_behalf_of(follow_request.target_account) - request.headers.merge! signed_request.headers - - get :show, params: { id: follow_request, account_username: account.username } - - expect(body_as_json[:id]).to eq ActivityPub::TagManager.instance.uri_for(follow_request) - expect(response).to have_http_status :success - end - - it 'returns http 404 without signature' do - get :show, params: { id: follow_request, account_username: account.username } - expect(response).to have_http_status 404 - end - end - - context 'with remote account' do - let(:account) { Fabricate(:account, domain: Faker::Internet.domain_name) } - - it 'returns http 404' do - signed_request = Request.new(:get, account_follow_url(account, follow_request)) - signed_request.on_behalf_of(follow_request.target_account) - request.headers.merge! signed_request.headers - - get :show, params: { id: follow_request, account_username: account.username } - - expect(response).to have_http_status 404 - end - end -end diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb index 9f43be35d..6503c83e3 100644 --- a/spec/lib/activitypub/activity/accept_spec.rb +++ b/spec/lib/activitypub/activity/accept_spec.rb @@ -3,49 +3,36 @@ require 'rails_helper' RSpec.describe ActivityPub::Activity::Accept do let(:sender) { Fabricate(:account) } let(:recipient) { Fabricate(:account) } - let!(:follow_request) { Fabricate(:follow_request, account: recipient, target_account: sender) } + + let(:json) do + { + '@context': 'https://www.w3.org/ns/activitystreams', + id: 'foo', + type: 'Accept', + actor: ActivityPub::TagManager.instance.uri_for(sender), + object: { + id: 'bar', + type: 'Follow', + actor: ActivityPub::TagManager.instance.uri_for(recipient), + object: ActivityPub::TagManager.instance.uri_for(sender), + }, + }.with_indifferent_access + end describe '#perform' do subject { described_class.new(json, sender) } before do + Fabricate(:follow_request, account: recipient, target_account: sender) subject.perform end - context 'with concerete object representation' do - let(:json) do - { - '@context': 'https://www.w3.org/ns/activitystreams', - id: 'foo', - type: 'Accept', - actor: ActivityPub::TagManager.instance.uri_for(sender), - object: { - type: 'Follow', - actor: ActivityPub::TagManager.instance.uri_for(recipient), - object: ActivityPub::TagManager.instance.uri_for(sender), - }, - }.with_indifferent_access - end - - it 'creates a follow relationship' do - expect(recipient.following?(sender)).to be true - end + it 'creates a follow relationship' do + expect(recipient.following?(sender)).to be true end - context 'with object represented by id' do - let(:json) do - { - '@context': 'https://www.w3.org/ns/activitystreams', - id: 'foo', - type: 'Accept', - actor: ActivityPub::TagManager.instance.uri_for(sender), - object: ActivityPub::TagManager.instance.uri_for(follow_request), - }.with_indifferent_access - end - - it 'creates a follow relationship' do - expect(recipient.following?(sender)).to be true - end + it 'removes the follow request' do + expect(recipient.requested?(sender)).to be false end end end diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb index 18f61e7cb..7bc93a2aa 100644 --- a/spec/models/follow_request_spec.rb +++ b/spec/models/follow_request_spec.rb @@ -34,12 +34,4 @@ RSpec.describe FollowRequest, type: :model do expect(follow_request.account.muting_reblogs?(target)).to be true end end - - describe '#object_type' do - let(:follow_request) { Fabricate(:follow_request) } - - it 'equals to :follow' do - expect(follow_request.object_type).to eq :follow - end - end end |