stripe-ruby/test/stripe/stripe_configuration_test.rb

132 lines
4.2 KiB
Ruby

# frozen_string_literal: true
require ::File.expand_path("../test_helper", __dir__)
module Stripe
class StripeConfigurationTest < Test::Unit::TestCase
context ".setup" do
should "initialize a new configuration with defaults" do
config = Stripe::StripeConfiguration.setup
assert_equal Stripe::DEFAULT_CA_BUNDLE_PATH, config.ca_bundle_path
assert_equal true, config.enable_telemetry
assert_equal true, config.verify_ssl_certs
assert_equal 2, config.max_network_retry_delay
assert_equal 0.5, config.initial_network_retry_delay
assert_equal 0, config.max_network_retries
assert_equal 30, config.open_timeout
assert_equal 80, config.read_timeout
assert_equal 30, config.write_timeout
assert_equal "https://api.stripe.com", config.api_base
assert_equal "https://connect.stripe.com", config.connect_base
assert_equal "https://files.stripe.com", config.uploads_base
end
should "allow for overrides when a block is passed" do
config = Stripe::StripeConfiguration.setup do |c|
c.open_timeout = 100
c.read_timeout = 100
c.write_timeout = 100 if WRITE_TIMEOUT_SUPPORTED
end
assert_equal 100, config.open_timeout
assert_equal 100, config.read_timeout
assert_equal 100, config.write_timeout if WRITE_TIMEOUT_SUPPORTED
end
end
context "#reverse_duplicate_merge" do
should "return a duplicate object with overrides" do
config = Stripe::StripeConfiguration.setup do |c|
c.open_timeout = 100
end
duped_config = config.reverse_duplicate_merge(read_timeout: 500)
assert_equal config.open_timeout, duped_config.open_timeout
assert_equal 500, duped_config.read_timeout
end
end
context "#max_network_retries=" do
should "coerce the option into an integer" do
config = Stripe::StripeConfiguration.setup
config.max_network_retries = "10"
assert_equal 10, config.max_network_retries
end
end
context "#log_level=" do
should "be backwards compatible with old values" do
config = Stripe::StripeConfiguration.setup
config.log_level = "debug"
assert_equal Stripe::LEVEL_DEBUG, config.log_level
config.log_level = "info"
assert_equal Stripe::LEVEL_INFO, config.log_level
end
should "raise an error if the value isn't valid" do
config = Stripe::StripeConfiguration.setup
assert_raises ArgumentError do
config.log_level = "Foo"
end
end
end
context "options that require all connection managers to be cleared" do
should "clear when setting allow ca_bundle_path" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.ca_bundle_path = "/path/to/ca/bundle"
end
should "clear when setting open timeout" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.open_timeout = 10
end
should "clear when setting read timeout" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.read_timeout = 10
end
should "clear when setting uploads_base" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.uploads_base = "https://other.stripe.com"
end
should "clearn when setting api_base to be configured" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.api_base = "https://other.stripe.com"
end
should "clear when setting connect_base" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.connect_base = "https://other.stripe.com"
end
should "clear when setting verify_ssl_certs" do
config = Stripe::StripeConfiguration.setup
StripeClient.expects(:clear_all_connection_managers)
config.verify_ssl_certs = false
end
end
end
end