Skip to content

Spec/Implementation for "open/read timeout" needs to be improved #17

@walro

Description

@walro

The following spec:

context "when given a slow host" do
let(:toxiproxy) { "http_host" }
let(:url) { "http://#{ToxiproxyConfig.downstream(toxiproxy)}/" }
describe "open/read timeout" do
before { client.http_timeout = 0.1 }
around do |example|
Toxiproxy[toxiproxy].toxic(:timeout, timeout: 0).apply do
Timeout.timeout(example_timeout) do
example.run
end
end
end
it "should raise exception" do
expect { subject }
.to raise_error(Twingly::HTTP::ConnectionError)
end
end
end
has way too nice expect. Consider the following change:

diff --git a/spec/lib/twingly/http_spec.rb b/spec/lib/twingly/http_spec.rb
index 765efad..184dc42 100644
--- a/spec/lib/twingly/http_spec.rb
+++ b/spec/lib/twingly/http_spec.rb
@@ -423,9 +423,9 @@ RSpec.describe Twingly::HTTP::Client do
         WebMock.disable_net_connect!
       end
 
-      context "when given a slow host" do
+      fcontext "when given a slow host" do
         let(:toxiproxy) { "http_host" }
-        let(:url)       { "http://#{ToxiproxyConfig.downstream(toxiproxy)}/" }
+        let(:url)       { "http://thisdoesnotevenexist.com/" }
 
         describe "open/read timeout" do
           before { client.http_timeout = 0.1 }

It passes the tests, which it should not :) I guess the best solution is to introduce a Timeout error which the specs can expect rather than the general error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions