Set proxy in ruby faraday client if configured (#14597)

* set proxy in ruby faraday client if configured

* Add missing string terminator in ruby client spec

* generating samples for ruby
This commit is contained in:
Simon Schmid 2023-02-03 09:11:44 +01:00 committed by GitHub
parent 68b41eeeea
commit 55e2eb1d6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 84 additions and 2 deletions

View File

@ -133,7 +133,7 @@
end
def build_connection
Faraday.new(url: config.base_url, ssl: ssl_options) do |conn|
Faraday.new(url: config.base_url, ssl: ssl_options, proxy: config.proxy) do |conn|
basic_auth(conn)
config.configure_middleware(conn)
yield(conn) if block_given?

View File

@ -83,6 +83,43 @@ describe {{moduleName}}::ApiClient do
end
{{/isFaraday}}
{{#isFaraday}}
describe 'proxy in #build_connection' do
let(:config) { {{moduleName}}::Configuration.new }
let(:api_client) { {{moduleName}}::ApiClient.new(config) }
let(:proxy_uri) { URI('http://example.org:8080') }
it 'defaults to nil' do
expect({{moduleName}}::Configuration.default.proxy).to be_nil
expect(config.proxy).to be_nil
connection = api_client.build_connection
expect(connection.proxy_for_request('/test')).to be_nil
end
it 'can be customized with a string' do
config.proxy = proxy_uri.to_s
connection = api_client.build_connection
configured_proxy = connection.proxy_for_request('/test')
expect(configured_proxy).not_to be_nil
expect(configured_proxy.uri.to_s).to eq proxy_uri.to_s
end
it 'can be customized with a hash' do
config.proxy = { uri: proxy_uri }
connection = api_client.build_connection
configured_proxy = connection.proxy_for_request('/test')
expect(configured_proxy).not_to be_nil
expect(configured_proxy.uri).to eq proxy_uri
end
end
{{/isFaraday}}
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = {{moduleName}}::ApiClient.new

View File

@ -89,6 +89,8 @@ describe Petstore::ApiClient do
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = Petstore::ApiClient.new

View File

@ -178,7 +178,7 @@ module Petstore
end
def build_connection
Faraday.new(url: config.base_url, ssl: ssl_options) do |conn|
Faraday.new(url: config.base_url, ssl: ssl_options, proxy: config.proxy) do |conn|
basic_auth(conn)
config.configure_middleware(conn)
yield(conn) if block_given?

View File

@ -51,6 +51,41 @@ describe Petstore::ApiClient do
end
end
describe 'proxy in #build_connection' do
let(:config) { Petstore::Configuration.new }
let(:api_client) { Petstore::ApiClient.new(config) }
let(:proxy_uri) { URI('http://example.org:8080') }
it 'defaults to nil' do
expect(Petstore::Configuration.default.proxy).to be_nil
expect(config.proxy).to be_nil
connection = api_client.build_connection
expect(connection.proxy_for_request('/test')).to be_nil
end
it 'can be customized with a string' do
config.proxy = proxy_uri.to_s
connection = api_client.build_connection
configured_proxy = connection.proxy_for_request('/test')
expect(configured_proxy).not_to be_nil
expect(configured_proxy.uri.to_s).to eq proxy_uri.to_s
end
it 'can be customized with a hash' do
config.proxy = { uri: proxy_uri }
connection = api_client.build_connection
configured_proxy = connection.proxy_for_request('/test')
expect(configured_proxy).not_to be_nil
expect(configured_proxy.uri).to eq proxy_uri
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = Petstore::ApiClient.new

View File

@ -89,6 +89,8 @@ describe Petstore::ApiClient do
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = Petstore::ApiClient.new

View File

@ -89,6 +89,8 @@ describe XAuthIDAlias::ApiClient do
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = XAuthIDAlias::ApiClient.new

View File

@ -89,6 +89,8 @@ describe DynamicServers::ApiClient do
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = DynamicServers::ApiClient.new

View File

@ -89,6 +89,8 @@ describe Petstore::ApiClient do
end
end
describe '#deserialize' do
it "handles Array<Integer>" do
api_client = Petstore::ApiClient.new