mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-10-16 00:02:00 -04:00
Merge pull request #1557 from stripe/mbroshi/add-beta-version-update
Update Stripe.add_beta_version
This commit is contained in:
commit
15e2d8393c
@ -160,11 +160,21 @@ module Stripe
|
||||
end
|
||||
|
||||
def self.add_beta_version(beta_name, version)
|
||||
if api_version.include?("; #{beta_name}=")
|
||||
raise "Stripe version header #{api_version} already contains entry for beta #{beta_name}"
|
||||
unless version.start_with?("v") && version[1..-1].to_i.to_s == version[1..-1]
|
||||
raise ArgumentError, "Version must be in the format 'v' followed by a number (e.g., 'v3')"
|
||||
end
|
||||
|
||||
self.api_version = "#{api_version}; #{beta_name}=#{version}"
|
||||
if (index = api_version.index("; #{beta_name}="))
|
||||
start_index = index + "; #{beta_name}=".length
|
||||
end_index = api_version.index(";", start_index) || api_version.length
|
||||
current_version = api_version[start_index...end_index][1..-1].to_i
|
||||
new_version = version[1..-1].to_i
|
||||
return if new_version <= current_version # Keep the higher version, no update needed
|
||||
|
||||
self.api_version = api_version[0...index] + "; #{beta_name}=#{version}" + api_version[end_index..-1]
|
||||
else
|
||||
self.api_version = "#{api_version}; #{beta_name}=#{version}"
|
||||
end
|
||||
end
|
||||
|
||||
class RawRequest
|
||||
|
@ -3851,20 +3851,6 @@ module Stripe
|
||||
client.v1.quotes.update("qt_xxxxxxxxxxxxx", { metadata: { order_id: "6735" } })
|
||||
assert_requested :post, "#{Stripe::DEFAULT_API_BASE}/v1/quotes/qt_xxxxxxxxxxxxx"
|
||||
end
|
||||
should "Test quotes preview invoices lines get" do
|
||||
Stripe::Quote.list_preview_invoice_lines("qt_xyz", "in_xyz")
|
||||
assert_requested :get, "#{Stripe.api_base}/v1/quotes/qt_xyz/preview_invoices/in_xyz/lines"
|
||||
end
|
||||
should "Test quotes preview invoices lines get (service)" do
|
||||
stub_request(
|
||||
:get,
|
||||
"#{Stripe::DEFAULT_API_BASE}/v1/quotes/qt_xyz/preview_invoices/in_xyz/lines"
|
||||
).to_return(body: "{}")
|
||||
client = StripeClient.new("sk_test_123")
|
||||
|
||||
client.v1.quotes.list_preview_invoice_lines("qt_xyz", "in_xyz")
|
||||
assert_requested :get, "#{Stripe::DEFAULT_API_BASE}/v1/quotes/qt_xyz/preview_invoices/in_xyz/lines"
|
||||
end
|
||||
should "Test radar early fraud warnings get" do
|
||||
Stripe::Radar::EarlyFraudWarning.list({ limit: 3 })
|
||||
assert_requested :get, "#{Stripe.api_base}/v1/radar/early_fraud_warnings?limit=3"
|
||||
@ -4870,22 +4856,6 @@ module Stripe
|
||||
client.v1.tax_codes.retrieve("txcd_xxxxxxxxxxxxx")
|
||||
assert_requested :get, "#{Stripe::DEFAULT_API_BASE}/v1/tax_codes/txcd_xxxxxxxxxxxxx"
|
||||
end
|
||||
should "Test tax forms pdf get" do
|
||||
block_handler = {}
|
||||
Stripe::Tax::Form.pdf("form_xxxxxxxxxxxxx", &block_handler)
|
||||
assert_requested :get, "#{Stripe.api_base}/v1/tax/forms/form_xxxxxxxxxxxxx/pdf"
|
||||
end
|
||||
should "Test tax forms pdf get (service)" do
|
||||
block_handler = {}
|
||||
stub_request(
|
||||
:get,
|
||||
"#{Stripe::DEFAULT_UPLOAD_BASE}/v1/tax/forms/form_xxxxxxxxxxxxx/pdf"
|
||||
).to_return(body: "{}")
|
||||
client = StripeClient.new("sk_test_123")
|
||||
|
||||
client.v1.tax.forms.pdf("form_xxxxxxxxxxxxx", &block_handler)
|
||||
assert_requested :get, "#{Stripe::DEFAULT_UPLOAD_BASE}/v1/tax/forms/form_xxxxxxxxxxxxx/pdf"
|
||||
end
|
||||
should "Test tax ids delete" do
|
||||
Stripe::TaxId.delete("taxid_123")
|
||||
assert_requested :delete, "#{Stripe.api_base}/v1/tax_ids/taxid_123"
|
||||
|
@ -129,16 +129,33 @@ class StripeTest < Test::Unit::TestCase
|
||||
assert_equal "https://other.stripe.com", Stripe.meter_events_base
|
||||
end
|
||||
|
||||
should "allow beta versions to be added once only" do
|
||||
should "allow beta versions to be added multiple times" do
|
||||
Stripe.api_version = "2018-02-28"
|
||||
|
||||
Stripe.add_beta_version("my_beta", "v2")
|
||||
assert_equal "2018-02-28; my_beta=v2", Stripe.api_version
|
||||
|
||||
err = assert_raises do
|
||||
Stripe.add_beta_version("my_beta", "v1")
|
||||
assert_equal(err, "Stripe version header 2018-02-28; my_beta=v2 already contains entry for beta my_beta")
|
||||
end
|
||||
# same version should be a no-op
|
||||
Stripe.add_beta_version("my_beta", "v2")
|
||||
assert_equal "2018-02-28; my_beta=v2", Stripe.api_version
|
||||
|
||||
# higher version should use higher version
|
||||
Stripe.add_beta_version("my_beta", "v5")
|
||||
assert_equal "2018-02-28; my_beta=v5", Stripe.api_version
|
||||
|
||||
# lower version should be a no-op
|
||||
Stripe.add_beta_version("my_beta", "v4")
|
||||
assert_equal "2018-02-28; my_beta=v5", Stripe.api_version
|
||||
end
|
||||
|
||||
should "allow append multiple beta names" do
|
||||
Stripe.api_version = "2018-02-28"
|
||||
|
||||
Stripe.add_beta_version("my_beta", "v2")
|
||||
assert_equal "2018-02-28; my_beta=v2", Stripe.api_version
|
||||
|
||||
Stripe.add_beta_version("my_beta_two", "v4")
|
||||
assert_equal "2018-02-28; my_beta=v2; my_beta_two=v4", Stripe.api_version
|
||||
end
|
||||
|
||||
should "allow verify_ssl_certs to be configured" do
|
||||
|
Loading…
x
Reference in New Issue
Block a user