mirror of
				https://github.com/stripe/stripe-ruby.git
				synced 2025-11-04 00:01:47 -05: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