diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-02-12 10:28:32 +0100 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-02-12 10:28:32 +0100 |
commit | 5e11f3a6e1de864da8a7e694f18eaa3b5e4c7379 (patch) | |
tree | f0dc221cad560933a921fc2b4d85fad065a7601a /spec/lib | |
parent | a30a40c4379b26890b6453083ef213e672658902 (diff) | |
parent | 15ced8728ff89932e3f8febf119f63c78ac9a960 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `app/javascript/styles/mastodon/modal.scss`: For some reason we changed the file loading path in glitch-soc, but now upstream has completely changed how the logo is loaded. Applied upstream changes.
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/activitypub/activity/follow_spec.rb | 171 |
1 files changed, 140 insertions, 31 deletions
diff --git a/spec/lib/activitypub/activity/follow_spec.rb b/spec/lib/activitypub/activity/follow_spec.rb index 05112cc18..fd4ede82b 100644 --- a/spec/lib/activitypub/activity/follow_spec.rb +++ b/spec/lib/activitypub/activity/follow_spec.rb @@ -17,62 +17,171 @@ RSpec.describe ActivityPub::Activity::Follow do describe '#perform' do subject { described_class.new(json, sender) } - context 'unlocked account' do - before do - subject.perform + context 'with no prior follow' do + context 'unlocked account' do + before do + subject.perform + end + + it 'creates a follow from sender to recipient' do + expect(sender.following?(recipient)).to be true + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end + + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end end - it 'creates a follow from sender to recipient' do - expect(sender.following?(recipient)).to be true + context 'silenced account following an unlocked account' do + before do + sender.touch(:silenced_at) + subject.perform + end + + it 'does not create a follow from sender to recipient' do + expect(sender.following?(recipient)).to be false + end + + it 'creates a follow request' do + expect(sender.requested?(recipient)).to be true + expect(sender.follow_requests.find_by(target_account: recipient).uri).to eq 'foo' + end end - it 'does not create a follow request' do - expect(sender.requested?(recipient)).to be false + context 'unlocked account muting the sender' do + before do + recipient.mute!(sender) + subject.perform + end + + it 'creates a follow from sender to recipient' do + expect(sender.following?(recipient)).to be true + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end + + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end + end + + context 'locked account' do + before do + recipient.update(locked: true) + subject.perform + end + + it 'does not create a follow from sender to recipient' do + expect(sender.following?(recipient)).to be false + end + + it 'creates a follow request' do + expect(sender.requested?(recipient)).to be true + expect(sender.follow_requests.find_by(target_account: recipient).uri).to eq 'foo' + end end end - context 'silenced account following an unlocked account' do + context 'when a follow relationship already exists' do before do - sender.touch(:silenced_at) - subject.perform + sender.active_relationships.create!(target_account: recipient, uri: 'bar') end - it 'does not create a follow from sender to recipient' do - expect(sender.following?(recipient)).to be false - end + context 'unlocked account' do + before do + subject.perform + end + + it 'correctly sets the new URI' do + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end - it 'creates a follow request' do - expect(sender.requested?(recipient)).to be true + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end end - end - context 'unlocked account muting the sender' do - before do - recipient.mute!(sender) - subject.perform + context 'silenced account following an unlocked account' do + before do + sender.touch(:silenced_at) + subject.perform + end + + it 'correctly sets the new URI' do + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end + + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end end - it 'creates a follow from sender to recipient' do - expect(sender.following?(recipient)).to be true + context 'unlocked account muting the sender' do + before do + recipient.mute!(sender) + subject.perform + end + + it 'correctly sets the new URI' do + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end + + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end end - it 'does not create a follow request' do - expect(sender.requested?(recipient)).to be false + context 'locked account' do + before do + recipient.update(locked: true) + subject.perform + end + + it 'correctly sets the new URI' do + expect(sender.active_relationships.find_by(target_account: recipient).uri).to eq 'foo' + end + + it 'does not create a follow request' do + expect(sender.requested?(recipient)).to be false + end end end - context 'locked account' do + context 'when a follow request already exists' do before do - recipient.update(locked: true) - subject.perform + sender.follow_requests.create!(target_account: recipient, uri: 'bar') end - it 'does not create a follow from sender to recipient' do - expect(sender.following?(recipient)).to be false + context 'silenced account following an unlocked account' do + before do + sender.touch(:silenced_at) + subject.perform + end + + it 'does not create a follow from sender to recipient' do + expect(sender.following?(recipient)).to be false + end + + it 'correctly sets the new URI' do + expect(sender.requested?(recipient)).to be true + expect(sender.follow_requests.find_by(target_account: recipient).uri).to eq 'foo' + end end - it 'creates a follow request' do - expect(sender.requested?(recipient)).to be true + context 'locked account' do + before do + recipient.update(locked: true) + subject.perform + end + + it 'does not create a follow from sender to recipient' do + expect(sender.following?(recipient)).to be false + end + + it 'correctly sets the new URI' do + expect(sender.requested?(recipient)).to be true + expect(sender.follow_requests.find_by(target_account: recipient).uri).to eq 'foo' + end end end end |