about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-07-20 01:59:07 +0200
committerGitHub <noreply@github.com>2017-07-20 01:59:07 +0200
commit1fcdaafa6fbe6d746a096c33263d76e6819da46d (patch)
treef12319e574997bea52eb6074e35e84addcfa78fa /spec
parentf24b81e27f1c6290cc6f43a71a32200a08c47d1c (diff)
Fix webfinger retries (#4275)
* Do not raise unretryable exceptions in ResolveRemoteAccountService

* Removed fatal exceptions from ResolveRemoteAccountService

Exceptions that cannot be retried should not be raised. New exception
class for those that can be retried (Mastodon::UnexpectedResponseError)
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/api/base_controller_spec.rb2
-rw-r--r--spec/services/resolve_remote_account_service_spec.rb6
-rw-r--r--spec/services/subscribe_service_spec.rb4
-rw-r--r--spec/workers/pubsubhubbub/delivery_worker_spec.rb2
4 files changed, 7 insertions, 7 deletions
diff --git a/spec/controllers/api/base_controller_spec.rb b/spec/controllers/api/base_controller_spec.rb
index 7d5e0116c..0c7ca8990 100644
--- a/spec/controllers/api/base_controller_spec.rb
+++ b/spec/controllers/api/base_controller_spec.rb
@@ -32,7 +32,7 @@ describe Api::BaseController do
       ActiveRecord::RecordInvalid => 422,
       Mastodon::ValidationError => 422,
       ActiveRecord::RecordNotFound => 404,
-      Goldfinger::Error => 422,
+      Mastodon::UnexpectedResponseError => 503,
       HTTP::Error => 503,
       OpenSSL::SSL::SSLError => 503,
       Mastodon::NotPermittedError => 403,
diff --git a/spec/services/resolve_remote_account_service_spec.rb b/spec/services/resolve_remote_account_service_spec.rb
index c51588210..ab5d3c6e5 100644
--- a/spec/services/resolve_remote_account_service_spec.rb
+++ b/spec/services/resolve_remote_account_service_spec.rb
@@ -22,11 +22,11 @@ RSpec.describe ResolveRemoteAccountService do
   end
 
   it 'raises error if no such user can be resolved via webfinger' do
-    expect { subject.call('catsrgr8@quitter.no') }.to raise_error Goldfinger::Error
+    expect(subject.call('catsrgr8@quitter.no')).to be_nil
   end
 
   it 'raises error if the domain does not have webfinger' do
-    expect { subject.call('catsrgr8@example.com') }.to raise_error Goldfinger::Error
+    expect(subject.call('catsrgr8@example.com')).to be_nil
   end
 
   it 'returns an already existing remote account' do
@@ -58,7 +58,7 @@ RSpec.describe ResolveRemoteAccountService do
   end
 
   it 'prevents hijacking inexisting accounts' do
-    expect { subject.call('hacker2@redirected.com') }.to raise_error Goldfinger::Error
+    expect(subject.call('hacker2@redirected.com')).to be_nil
   end
 
   it 'returns a new remote account' do
diff --git a/spec/services/subscribe_service_spec.rb b/spec/services/subscribe_service_spec.rb
index 5db91ad99..835be5ec5 100644
--- a/spec/services/subscribe_service_spec.rb
+++ b/spec/services/subscribe_service_spec.rb
@@ -33,11 +33,11 @@ RSpec.describe SubscribeService do
 
   it 'fails loudly if PuSH hub is unavailable' do
     stub_request(:post, 'http://hub.example.com/').to_return(status: 503)
-    expect { subject.call(account) }.to raise_error(/Subscription attempt failed/)
+    expect { subject.call(account) }.to raise_error Mastodon::UnexpectedResponseError
   end
 
   it 'fails loudly if rate limited' do
     stub_request(:post, 'http://hub.example.com/').to_return(status: 429)
-    expect { subject.call(account) }.to raise_error(/Subscription attempt failed/)
+    expect { subject.call(account) }.to raise_error Mastodon::UnexpectedResponseError
   end
 end
diff --git a/spec/workers/pubsubhubbub/delivery_worker_spec.rb b/spec/workers/pubsubhubbub/delivery_worker_spec.rb
index a83245786..b72001568 100644
--- a/spec/workers/pubsubhubbub/delivery_worker_spec.rb
+++ b/spec/workers/pubsubhubbub/delivery_worker_spec.rb
@@ -26,7 +26,7 @@ describe Pubsubhubbub::DeliveryWorker do
       subscription = Fabricate(:subscription)
 
       stub_request_to_respond_with(subscription, 500)
-      expect { subject.perform(subscription.id, payload) }.to raise_error(/Delivery failed/)
+      expect { subject.perform(subscription.id, payload) }.to raise_error Mastodon::UnexpectedResponseError
     end
 
     it 'updates subscriptions when delivery succeeds' do