mirror of
https://github.com/lostisland/faraday.git
synced 2025-12-07 00:01:45 -05:00
test current httpclient timeout behavior
This commit is contained in:
parent
b35f6a2480
commit
55c0b742ec
@ -1,6 +1,11 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe Faraday::Adapter::HTTPClient do
|
||||
# ruby gem defaults for testing purposes
|
||||
HTTPCLIENT_OPEN = 60
|
||||
HTTPCLIENT_READ = 60
|
||||
HTTPCLIENT_WRITE = 120
|
||||
|
||||
features :request_body_on_query_methods, :reason_phrase_parse, :compression,
|
||||
:trace_method, :connect_method, :local_socket_binding
|
||||
|
||||
@ -18,4 +23,52 @@ RSpec.describe Faraday::Adapter::HTTPClient do
|
||||
expect(client.keep_alive_timeout).to eq(20)
|
||||
expect(client.ssl_config.timeout).to eq(25)
|
||||
end
|
||||
|
||||
context 'Options' do
|
||||
let(:request) { Faraday::RequestOptions.new }
|
||||
let(:env) { { request: request } }
|
||||
let(:options) { {} }
|
||||
let(:adapter) { Faraday::Adapter::HTTPClient.new }
|
||||
let(:client) { adapter.client }
|
||||
|
||||
it 'configures timeout' do
|
||||
assert_default_timeouts!
|
||||
|
||||
request.timeout = 5
|
||||
adapter.configure_timeouts(request)
|
||||
|
||||
expect(client.connect_timeout).to eq(5)
|
||||
expect(client.send_timeout).to eq(5)
|
||||
expect(client.receive_timeout).to eq(5)
|
||||
end
|
||||
|
||||
it 'configures open timeout' do
|
||||
assert_default_timeouts!
|
||||
|
||||
request.open_timeout = 1
|
||||
adapter.configure_timeouts(request)
|
||||
|
||||
expect(client.connect_timeout).to eq(1)
|
||||
expect(client.send_timeout).to eq(1)
|
||||
expect(client.receive_timeout).to eq(HTTPCLIENT_READ)
|
||||
end
|
||||
|
||||
it 'configures multiple timeouts' do
|
||||
assert_default_timeouts!
|
||||
|
||||
request.open_timeout = 1
|
||||
request.timeout = 5
|
||||
adapter.configure_timeouts(request)
|
||||
|
||||
expect(client.connect_timeout).to eq(1)
|
||||
expect(client.send_timeout).to eq(1)
|
||||
expect(client.receive_timeout).to eq(5)
|
||||
end
|
||||
|
||||
def assert_default_timeouts!
|
||||
expect(client.connect_timeout).to eq(HTTPCLIENT_OPEN)
|
||||
expect(client.send_timeout).to eq(HTTPCLIENT_WRITE)
|
||||
expect(client.receive_timeout).to eq(HTTPCLIENT_READ)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user