diff --git a/modules/openapi-generator/src/main/resources/ruby-client/api_client_faraday_partial.mustache b/modules/openapi-generator/src/main/resources/ruby-client/api_client_faraday_partial.mustache index 6929ad0496f..cc7175e95f1 100644 --- a/modules/openapi-generator/src/main/resources/ruby-client/api_client_faraday_partial.mustache +++ b/modules/openapi-generator/src/main/resources/ruby-client/api_client_faraday_partial.mustache @@ -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? diff --git a/modules/openapi-generator/src/main/resources/ruby-client/api_client_spec.mustache b/modules/openapi-generator/src/main/resources/ruby-client/api_client_spec.mustache index 86a7bd9bda8..472fba39d4f 100644 --- a/modules/openapi-generator/src/main/resources/ruby-client/api_client_spec.mustache +++ b/modules/openapi-generator/src/main/resources/ruby-client/api_client_spec.mustache @@ -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" do api_client = {{moduleName}}::ApiClient.new diff --git a/samples/client/petstore/ruby-autoload/spec/api_client_spec.rb b/samples/client/petstore/ruby-autoload/spec/api_client_spec.rb index f42b9c4f574..a17f1352c5b 100644 --- a/samples/client/petstore/ruby-autoload/spec/api_client_spec.rb +++ b/samples/client/petstore/ruby-autoload/spec/api_client_spec.rb @@ -89,6 +89,8 @@ describe Petstore::ApiClient do end end + + describe '#deserialize' do it "handles Array" do api_client = Petstore::ApiClient.new diff --git a/samples/client/petstore/ruby-faraday/lib/petstore/api_client.rb b/samples/client/petstore/ruby-faraday/lib/petstore/api_client.rb index c193a0b1226..348dac39c11 100644 --- a/samples/client/petstore/ruby-faraday/lib/petstore/api_client.rb +++ b/samples/client/petstore/ruby-faraday/lib/petstore/api_client.rb @@ -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? diff --git a/samples/client/petstore/ruby-faraday/spec/api_client_spec.rb b/samples/client/petstore/ruby-faraday/spec/api_client_spec.rb index 07768179559..37ffb8d62af 100644 --- a/samples/client/petstore/ruby-faraday/spec/api_client_spec.rb +++ b/samples/client/petstore/ruby-faraday/spec/api_client_spec.rb @@ -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" do api_client = Petstore::ApiClient.new diff --git a/samples/client/petstore/ruby/spec/api_client_spec.rb b/samples/client/petstore/ruby/spec/api_client_spec.rb index f42b9c4f574..a17f1352c5b 100644 --- a/samples/client/petstore/ruby/spec/api_client_spec.rb +++ b/samples/client/petstore/ruby/spec/api_client_spec.rb @@ -89,6 +89,8 @@ describe Petstore::ApiClient do end end + + describe '#deserialize' do it "handles Array" do api_client = Petstore::ApiClient.new diff --git a/samples/openapi3/client/extensions/x-auth-id-alias/ruby-client/spec/api_client_spec.rb b/samples/openapi3/client/extensions/x-auth-id-alias/ruby-client/spec/api_client_spec.rb index 07b21ecea6b..1a672a645c0 100644 --- a/samples/openapi3/client/extensions/x-auth-id-alias/ruby-client/spec/api_client_spec.rb +++ b/samples/openapi3/client/extensions/x-auth-id-alias/ruby-client/spec/api_client_spec.rb @@ -89,6 +89,8 @@ describe XAuthIDAlias::ApiClient do end end + + describe '#deserialize' do it "handles Array" do api_client = XAuthIDAlias::ApiClient.new diff --git a/samples/openapi3/client/features/dynamic-servers/ruby/spec/api_client_spec.rb b/samples/openapi3/client/features/dynamic-servers/ruby/spec/api_client_spec.rb index 005a7830960..78a8b9ab544 100644 --- a/samples/openapi3/client/features/dynamic-servers/ruby/spec/api_client_spec.rb +++ b/samples/openapi3/client/features/dynamic-servers/ruby/spec/api_client_spec.rb @@ -89,6 +89,8 @@ describe DynamicServers::ApiClient do end end + + describe '#deserialize' do it "handles Array" do api_client = DynamicServers::ApiClient.new diff --git a/samples/openapi3/client/features/generate-alias-as-model/ruby-client/spec/api_client_spec.rb b/samples/openapi3/client/features/generate-alias-as-model/ruby-client/spec/api_client_spec.rb index b63c24f9fb0..bd1b048759f 100644 --- a/samples/openapi3/client/features/generate-alias-as-model/ruby-client/spec/api_client_spec.rb +++ b/samples/openapi3/client/features/generate-alias-as-model/ruby-client/spec/api_client_spec.rb @@ -89,6 +89,8 @@ describe Petstore::ApiClient do end end + + describe '#deserialize' do it "handles Array" do api_client = Petstore::ApiClient.new