The code powering m.abunchtell.com https://m.abunchtell.com
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

72 rindas
2.2 KiB

  1. require 'rails_helper'
  2. RSpec.describe AuthorizeFollowService, type: :service do
  3. let(:sender) { Fabricate(:account, username: 'alice') }
  4. subject { AuthorizeFollowService.new }
  5. describe 'local' do
  6. let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob')).account }
  7. before do
  8. FollowRequest.create(account: bob, target_account: sender)
  9. subject.call(bob, sender)
  10. end
  11. it 'removes follow request' do
  12. expect(bob.requested?(sender)).to be false
  13. end
  14. it 'creates follow relation' do
  15. expect(bob.following?(sender)).to be true
  16. end
  17. end
  18. describe 'remote OStatus' do
  19. let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com')).account }
  20. before do
  21. FollowRequest.create(account: bob, target_account: sender)
  22. stub_request(:post, "http://salmon.example.com/").to_return(:status => 200, :body => "", :headers => {})
  23. subject.call(bob, sender)
  24. end
  25. it 'removes follow request' do
  26. expect(bob.requested?(sender)).to be false
  27. end
  28. it 'creates follow relation' do
  29. expect(bob.following?(sender)).to be true
  30. end
  31. it 'sends a follow request authorization salmon slap' do
  32. expect(a_request(:post, "http://salmon.example.com/").with { |req|
  33. xml = OStatus2::Salmon.new.unpack(req.body)
  34. xml.match(OStatus::TagManager::VERBS[:authorize])
  35. }).to have_been_made.once
  36. end
  37. end
  38. describe 'remote ActivityPub' do
  39. let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', domain: 'example.com', protocol: :activitypub, inbox_url: 'http://example.com/inbox')).account }
  40. before do
  41. FollowRequest.create(account: bob, target_account: sender)
  42. stub_request(:post, bob.inbox_url).to_return(status: 200)
  43. subject.call(bob, sender)
  44. end
  45. it 'removes follow request' do
  46. expect(bob.requested?(sender)).to be false
  47. end
  48. it 'creates follow relation' do
  49. expect(bob.following?(sender)).to be true
  50. end
  51. it 'sends an accept activity' do
  52. expect(a_request(:post, bob.inbox_url)).to have_been_made.once
  53. end
  54. end
  55. end