| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'rails_helper' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | RSpec.describe RemoteFollow do | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |   before do | 
					
						
							|  |  |  |     stub_request(:get, 'https://quitter.no/.well-known/webfinger?resource=acct:gargron@quitter.no').to_return(request_fixture('webfinger.txt')) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let(:attrs)         { nil } | 
					
						
							|  |  |  |   let(:remote_follow) { described_class.new(attrs) } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |   describe '.initialize' do | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     subject { remote_follow.acct } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     context 'attrs with acct' do | 
					
						
							|  |  |  |       let(:attrs) { { acct: 'gargron@quitter.no' } } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |       it 'returns acct' do | 
					
						
							|  |  |  |         is_expected.to eq 'gargron@quitter.no' | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     context 'attrs without acct' do | 
					
						
							|  |  |  |       let(:attrs) { {} } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |       it do | 
					
						
							|  |  |  |         is_expected.to be_nil | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   describe '#valid?' do | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     subject { remote_follow.valid? } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     context 'attrs with acct' do | 
					
						
							| 
									
										
										
										
											2018-10-04 10:36:53 +00:00
										 |  |  |       let(:attrs) { { acct: 'gargron@quitter.no' } } | 
					
						
							| 
									
										
										
										
											2017-11-17 01:52:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |       it do | 
					
						
							|  |  |  |         is_expected.to be true | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     context 'attrs without acct' do | 
					
						
							| 
									
										
										
										
											2018-10-04 10:36:53 +00:00
										 |  |  |       let(:attrs) { {} } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |       it do | 
					
						
							|  |  |  |         is_expected.to be false | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   describe '#subscribe_address_for' do | 
					
						
							|  |  |  |     before do | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |       remote_follow.valid? | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     let(:attrs)   { { acct: 'gargron@quitter.no' } } | 
					
						
							|  |  |  |     let(:account) { Fabricate(:account, username: 'alice') } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     subject { remote_follow.subscribe_address_for(account) } | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-14 19:41:17 +00:00
										 |  |  |     it 'returns subscribe address' do | 
					
						
							| 
									
										
										
										
											2019-08-30 00:19:17 +00:00
										 |  |  |       is_expected.to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice' | 
					
						
							| 
									
										
										
										
											2017-11-10 15:56:02 +00:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |