mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-11-09 00:02:47 -05:00
54 lines
1.3 KiB
Ruby
54 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module FaradayHelpers
|
|
private
|
|
|
|
# extra options to pass when building the adapter
|
|
def adapter_options
|
|
[]
|
|
end
|
|
|
|
def faraday_connection(options = {}, &optional_connection_config_blk)
|
|
return @faraday_connection if defined?(@faraday_connection)
|
|
|
|
builder_block = proc do |b|
|
|
b.request :url_encoded
|
|
b.adapter :httpx, *adapter_options, &optional_connection_config_blk
|
|
end
|
|
|
|
options[:ssl] ||= {}
|
|
options[:ssl][:ca_file] ||= ENV["SSL_FILE"]
|
|
|
|
server = options.delete(:server_uri) || URI("https://#{httpbin}")
|
|
|
|
@faraday_connection = Faraday::Connection.new(server.to_s, options, &builder_block).tap do |conn|
|
|
conn.headers["X-Faraday-Adapter"] = "httpx"
|
|
end
|
|
end
|
|
|
|
def request_headers(response)
|
|
if response.is_a?(Hash)
|
|
response[:request][:headers]
|
|
else
|
|
response.env.request_headers
|
|
end.transform_keys(&:downcase)
|
|
end
|
|
|
|
def verify_http_error_span(span, status, error)
|
|
assert span.get_tag("http.status_code") == status.to_s
|
|
|
|
if status >= 500 || Gem::Version.new(DatadogHelpers::DATADOG_VERSION::STRING) >= Gem::Version.new("2.0.0")
|
|
assert span.get_tag("error.type") == error
|
|
assert span.status == 1
|
|
else
|
|
assert span.status.zero?
|
|
end
|
|
end
|
|
|
|
def teardown
|
|
super
|
|
|
|
@faraday_connection.close if defined?(@faraday_connection)
|
|
end
|
|
end
|