diff options
Diffstat (limited to 'spec/models/remote_follow_spec.rb')
-rw-r--r-- | spec/models/remote_follow_spec.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb new file mode 100644 index 000000000..7a4597ee7 --- /dev/null +++ b/spec/models/remote_follow_spec.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe RemoteFollow do + 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) } + + describe '.initialize' do + subject { remote_follow.acct } + + context 'attrs with acct' do + let(:attrs) { { acct: 'gargron@quitter.no' } } + + it 'returns acct' do + is_expected.to eq 'gargron@quitter.no' + end + end + + context 'attrs without acct' do + let(:attrs) { {} } + + it do + is_expected.to be_nil + end + end + end + + describe '#valid?' do + subject { remote_follow.valid? } + + context 'attrs with acct' do + let(:attrs) { { acct: 'gargron@quitter.no' }} + + it do + is_expected.to be true + end + end + + context 'attrs without acct' do + let(:attrs) { { } } + + it do + is_expected.to be false + end + end + end + + describe '#subscribe_address_for' do + before do + remote_follow.valid? + end + + let(:attrs) { { acct: 'gargron@quitter.no' } } + let(:account) { Fabricate(:account, username: 'alice') } + + subject { remote_follow.subscribe_address_for(account) } + + it 'returns subscribe address' do + is_expected.to eq 'https://quitter.no/main/ostatussub?profile=alice%40cb6e6126.ngrok.io' + end + end +end |