diff options
author | abcang <abcang1015@gmail.com> | 2017-08-29 02:12:09 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-08-28 19:12:09 +0200 |
commit | ce9a5f358ed1ea5039c1de0bc896dc60622852f7 (patch) | |
tree | aaa1be760ae3ddf6aa52cdd5464a537244ed55f0 | |
parent | 8f527bd5884ccb8bfc7f1ff583fa35ae4fa6618c (diff) |
rescue HTTP::ConnectionError in RemoteFollowController#create (#4726)
-rw-r--r-- | app/models/remote_follow.rb | 2 | ||||
-rw-r--r-- | spec/controllers/remote_follow_controller_spec.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/app/models/remote_follow.rb b/app/models/remote_follow.rb index 8366d43c5..c3f867743 100644 --- a/app/models/remote_follow.rb +++ b/app/models/remote_follow.rb @@ -42,7 +42,7 @@ class RemoteFollow def acct_resource @_acct_resource ||= Goldfinger.finger("acct:#{acct}") - rescue Goldfinger::Error + rescue Goldfinger::Error, HTTP::ConnectionError nil end diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb index 915c86f8e..86b1eb8d0 100644 --- a/spec/controllers/remote_follow_controller_spec.rb +++ b/spec/controllers/remote_follow_controller_spec.rb @@ -87,6 +87,14 @@ describe RemoteFollowController do expect(response).to render_template(:new) expect(response.body).to include(I18n.t('remote_follow.missing_resource')) end + + it 'renders new when occur HTTP::ConnectionError' do + allow(Goldfinger).to receive(:finger).with('acct:user@unknown').and_raise(HTTP::ConnectionError) + post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@unknown' } } + + expect(response).to render_template(:new) + expect(response.body).to include(I18n.t('remote_follow.missing_resource')) + end end end |