diff --git a/lib/final_destination.rb b/lib/final_destination.rb index f74ff6cca0f..1a732a952a2 100644 --- a/lib/final_destination.rb +++ b/lib/final_destination.rb @@ -123,6 +123,8 @@ class FinalDestination return resolve end + nil + rescue Excon::Errors::Timeout nil end diff --git a/spec/components/final_destination_spec.rb b/spec/components/final_destination_spec.rb index e198b1e766b..d9fcba70a73 100644 --- a/spec/components/final_destination_spec.rb +++ b/spec/components/final_destination_spec.rb @@ -53,11 +53,17 @@ describe FinalDestination do expect(fd('https://eviltrout.com').status).to eq(:ready) end - it "returns nil an invalid url" do + it "returns nil for an invalid url" do expect(fd(nil).resolve).to be_nil expect(fd('asdf').resolve).to be_nil end + it "returns nil when read timeouts" do + Excon.expects(:public_send).raises(Excon::Errors::Timeout) + + expect(fd('https://discourse.org').resolve).to eq(nil) + end + context "without redirects" do before do stub_request(:head, "https://eviltrout.com").to_return(doc_response)