Skip to content

Commit 973231f

Browse files
committed
Tidy up code.
1 parent 637e37f commit 973231f

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

lib/async/http/faraday/adapter.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def call(env)
6464
end
6565

6666
return @app.call(env)
67-
rescue Errno::ETIMEDOUT => e
67+
rescue Errno::ETIMEDOUT, Async::TimeoutError => e
6868
raise ::Faraday::TimeoutError, e
6969
rescue OpenSSL::SSL::SSLError => e
7070
raise ::Faraday::SSLError, e
@@ -77,9 +77,9 @@ def call(env)
7777

7878
private
7979

80-
def with_timeout
80+
def with_timeout(task: Async::Task.current)
8181
if @timeout
82-
Async::Task.current.with_timeout(@timeout, ::Faraday::TimeoutError) do
82+
task.with_timeout(@timeout, ::Faraday::TimeoutError) do
8383
yield
8484
end
8585
else

spec/async/http/faraday/adapter_spec.rb

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,41 +26,45 @@
2626

2727
RSpec.describe Async::HTTP::Faraday::Adapter do
2828
include_context Async::RSpec::Reactor
29-
29+
3030
let(:endpoint) {
3131
Async::HTTP::Endpoint.parse('http://127.0.0.1:9294')
3232
}
33-
33+
3434
def run_server(response = Protocol::HTTP::Response[204], response_delay: nil)
3535
Async do |task|
3636
begin
3737
server_task = task.async do
3838
app = Proc.new do
39-
task.sleep(response_delay) if response_delay
39+
if response_delay
40+
task.sleep(response_delay)
41+
end
42+
4043
response
4144
end
45+
4246
Async::HTTP::Server.new(app, endpoint).run
4347
end
44-
48+
4549
yield
4650
ensure
4751
server_task.stop
4852
end
4953
end.wait
5054
end
51-
55+
5256
def get_response(url = endpoint.url, path = '/index', adapter_options: {})
5357
connection = Faraday.new(url: url) do |faraday|
5458
faraday.response :logger
5559
faraday.adapter :async_http, adapter_options
5660
end
57-
61+
5862
connection.get(path)
5963

6064
ensure
6165
connection&.close
6266
end
63-
67+
6468
it "client can get resource" do
6569
run_server(Protocol::HTTP::Response[200, {}, ['Hello World']]) do
6670
expect(get_response.body).to eq 'Hello World'
@@ -74,42 +78,43 @@ def get_response(url = endpoint.url, path = '/index', adapter_options: {})
7478
expect(response).to be_success
7579
end
7680
end
77-
81+
7882
it 'properly handles chunked responses' do
7983
large_response_size = 65536
80-
84+
8185
run_server(Protocol::HTTP::Response[200, {}, ['.' * large_response_size]]) do
8286
expect(get_response.body.size).to eq large_response_size
8387
end
8488
end
85-
89+
8690
it 'properly handles no content responses' do
8791
run_server(Protocol::HTTP::Response[204]) do
8892
expect(get_response.body).to be_nil
8993
end
9094
end
91-
95+
9296
it 'closes connection automatically if persistent option is set to false' do
9397
run_server do
9498
expect do
9599
get_response(adapter_options: { persistent: false })
96100
end.not_to raise_error
97101
end
98102
end
99-
103+
100104
it 'raises an exception if request times out' do
101-
delay = 0.01
102-
105+
delay = 0.1
106+
103107
run_server(response_delay: delay) do
104108
expect do
105-
get_response(adapter_options: { timeout: delay / 2 })
109+
get_response(adapter_options: {timeout: delay / 2})
106110
end.to raise_error(Faraday::TimeoutError)
111+
107112
expect do
108-
get_response(adapter_options: { timeout: delay * 2 })
113+
get_response(adapter_options: {timeout: delay * 2})
109114
end.not_to raise_error
110115
end
111116
end
112-
117+
113118
it 'wraps underlying exceptions into Faraday analogs' do
114119
expect { get_response(endpoint.url, '/index') }.to raise_error(Faraday::ConnectionFailed)
115120
end

0 commit comments

Comments
 (0)