Skip to content

Commit ef4acdb

Browse files
committed
Make application_name writable
1 parent 4f39542 commit ef4acdb

2 files changed

Lines changed: 31 additions & 3 deletions

File tree

lib/adyen/client.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
module Adyen
1414
class Client
15-
attr_accessor :ws_user, :ws_password, :api_key, :oauth_token, :client, :adapter
15+
attr_accessor :ws_user, :ws_password, :api_key, :oauth_token, :client, :adapter, :application_name
1616
attr_reader :env, :connection_options, :adapter_options, :terminal_region
1717

1818
def initialize(ws_user: nil, ws_password: nil, api_key: nil, oauth_token: nil, env: :live, adapter: nil, mock_port: 3001,
@@ -155,7 +155,7 @@ def call_adyen_api(service, action, request_data, headers, version, _with_applic
155155
faraday.adapter @adapter, **@adapter_options
156156
faraday.headers['Content-Type'] = 'application/json'
157157
user_agent = "#{Adyen::NAME}/#{Adyen::VERSION}"
158-
user_agent = "#{@application_name} #{user_agent}" unless @application_name.nil? || @application_name.empty?
158+
user_agent = "#{@application_name} #{user_agent}" if @application_name && !@application_name.strip.empty?
159159
faraday.headers['User-Agent'] = user_agent
160160

161161
# set header based on auth_type and service

spec/client_spec.rb

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,4 +502,32 @@
502502
expect(connection_headers['User-Agent']).to_not be_empty
503503
expect(connection_headers['User-Agent']).to eq("MyTestApp #{Adyen::NAME}/#{Adyen::VERSION}")
504504
end
505-
end
505+
506+
it 'ensures User-Agent includes application_name when set after initialization' do
507+
client = Adyen::Client.new
508+
client.api_key = 'api_key'
509+
client.env = :test
510+
client.application_name = 'MyTestAppAfterInit' # Set after initialization
511+
512+
mock_response = Faraday::Response.new(status: 200, body: '{}')
513+
514+
mock_conn = instance_double(Faraday::Connection)
515+
expect(Faraday).to receive(:new).and_yield(mock_conn).and_return(mock_conn)
516+
allow(mock_conn).to receive(:adapter)
517+
connection_headers = {}
518+
allow(mock_conn).to receive(:headers).and_return(connection_headers)
519+
520+
expect(mock_conn).to receive(:post) do |&block|
521+
mock_req = double('Faraday::Request')
522+
allow(mock_req).to receive(:body=)
523+
block.call(mock_req) if block_given?
524+
mock_response
525+
end.and_return(mock_response)
526+
527+
client.checkout.payments_api.payments({})
528+
529+
expect(connection_headers['User-Agent']).to_not be_nil
530+
expect(connection_headers['User-Agent']).to_not be_empty
531+
expect(connection_headers['User-Agent']).to eq("MyTestAppAfterInit #{Adyen::NAME}/#{Adyen::VERSION}")
532+
end
533+
end

0 commit comments

Comments
 (0)