From b05c1b2094326c2b154a511aecebea788b7ba746 Mon Sep 17 00:00:00 2001 From: Fabiano Arruda Date: Sun, 26 Nov 2023 17:56:00 -0300 Subject: [PATCH 1/4] Adds support for stripe-ruby v10 - Fixed deprecated methods in specs --- spec/shared_stripe_examples/bank_token_examples.rb | 11 +++++------ spec/shared_stripe_examples/invoice_examples.rb | 3 ++- spec/shared_stripe_examples/subscription_examples.rb | 12 ++++++------ stripe-ruby-mock.gemspec | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/spec/shared_stripe_examples/bank_token_examples.rb b/spec/shared_stripe_examples/bank_token_examples.rb index 360684587..7ee08c6f2 100644 --- a/spec/shared_stripe_examples/bank_token_examples.rb +++ b/spec/shared_stripe_examples/bank_token_examples.rb @@ -28,20 +28,19 @@ expect(bank_token).to match /^test_btok/ end - it "assigns the generated bank account to a new recipient" do + it "assigns the generated bank account to a new customer" do bank_token = StripeMock.generate_bank_token( :bank_name => "Bank Token Mocking", :last4 => "7777" ) - recipient = Stripe::Recipient.create({ + customer = Stripe::Customer.create({ name: "Fred Flinstone", - type: "individual", email: 'blah@domain.co', - bank_account: bank_token + source: bank_token }) - expect(recipient.active_account.last4).to eq("7777") - expect(recipient.active_account.bank_name).to eq("Bank Token Mocking") + expect(customer.sources.first.last4).to eq("7777") + expect(customer.sources.first.bank_name).to eq("Bank Token Mocking") end it "retrieves a created token" do diff --git a/spec/shared_stripe_examples/invoice_examples.rb b/spec/shared_stripe_examples/invoice_examples.rb index b7eb20913..b3b6d0d1b 100644 --- a/spec/shared_stripe_examples/invoice_examples.rb +++ b/spec/shared_stripe_examples/invoice_examples.rb @@ -154,7 +154,8 @@ describe 'parameter validation' do it 'fails without parameters' do expect { Stripe::Invoice.upcoming() }.to raise_error {|e| - expect(e).to be_a(ArgumentError) } + expect(e).to be_a(Stripe::InvalidRequestError) + expect(e.message).to eq('Missing required param: customer if subscription is not provided')} end it 'fails without a valid customer' do diff --git a/spec/shared_stripe_examples/subscription_examples.rb b/spec/shared_stripe_examples/subscription_examples.rb index d8453de5e..195157253 100644 --- a/spec/shared_stripe_examples/subscription_examples.rb +++ b/spec/shared_stripe_examples/subscription_examples.rb @@ -687,7 +687,7 @@ customer = Stripe::Customer.create(id: 'test_customer_sub', source: gen_card_tk) sub = Stripe::Subscription.create({ items: { '0' => { plan: 'silver' } }, customer: customer.id }) - sub.delete(at_period_end: true) + sub.cancel(at_period_end: true) expect(sub.cancel_at_period_end).to be_truthy expect(sub.save).to be_truthy @@ -752,7 +752,7 @@ customer = Stripe::Customer.create(source: gen_card_tk, plan: plan.id) subscription = Stripe::Subscription.retrieve(customer.subscriptions.data.first.id) - subscription.delete + subscription.cancel expect { subscription.save }.to raise_error { |e| expect(e).to be_a(Stripe::InvalidRequestError) @@ -765,7 +765,7 @@ customer = Stripe::Customer.create(id: 'test_customer_sub', source: gen_card_tk) sub = Stripe::Subscription.create({ items: [ { plan: plan.id } ], customer: customer.id }) - sub.delete(at_period_end: true) + sub.cancel(at_period_end: true) expect(sub.cancel_at_period_end).to be_truthy expect(sub.save).to be_truthy @@ -1180,7 +1180,7 @@ customer = Stripe::Customer.create(source: gen_card_tk, plan: plan.id) sub = Stripe::Subscription.retrieve(customer.subscriptions.data.first.id) - result = sub.delete + result = sub.cancel expect(result.status).to eq('canceled') expect(result.cancel_at_period_end).to eq false @@ -1247,7 +1247,7 @@ customer = Stripe::Customer.create(id: 'test_customer_sub', source: gen_card_tk, plan: "trial") sub = Stripe::Subscription.retrieve(customer.subscriptions.data.first.id) - result = sub.delete(at_period_end: true) + result = sub.cancel(at_period_end: true) expect(result.status).to eq('trialing') @@ -1331,7 +1331,7 @@ it "does not include canceled subscriptions by default" do customer = Stripe::Customer.create(source: gen_card_tk) subscription = Stripe::Subscription.create({ plan: plan.id, customer: customer.id }) - subscription.delete + subscription.cancel list = Stripe::Subscription.list({customer: customer.id}) diff --git a/stripe-ruby-mock.gemspec b/stripe-ruby-mock.gemspec index e53963d8c..20971300d 100644 --- a/stripe-ruby-mock.gemspec +++ b/stripe-ruby-mock.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |gem| gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.require_paths = ['lib'] - gem.add_dependency 'stripe', '> 5', '< 6' + gem.add_dependency 'stripe', '> 5', '< 11' gem.add_dependency 'multi_json', '~> 1.0' gem.add_dependency 'dante', '>= 0.2.0' From 2f0fbb8283be783b21ba941f800b749e5011feb9 Mon Sep 17 00:00:00 2001 From: Fabiano Arruda Date: Tue, 9 Jan 2024 16:11:35 -0300 Subject: [PATCH 2/4] Fixes compatibility with new param introduced in v10.3 --- lib/stripe_mock/instance.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stripe_mock/instance.rb b/lib/stripe_mock/instance.rb index 56ab20eef..173f68849 100644 --- a/lib/stripe_mock/instance.rb +++ b/lib/stripe_mock/instance.rb @@ -109,7 +109,7 @@ def initialize @base_strategy = TestStrategies::Base.new end - def mock_request(method, url, api_key: nil, api_base: nil, params: {}, headers: {}) + def mock_request(method, url, api_key: nil, api_base: nil, usage: [], params: {}, headers: {}) return {} if method == :xtest api_key ||= (Stripe.api_key || DUMMY_API_KEY) From d3a6d398939a9bf7561aea768ddd2c4f55bb6633 Mon Sep 17 00:00:00 2001 From: Fabiano Arruda Date: Wed, 10 Jan 2024 11:30:45 -0300 Subject: [PATCH 3/4] Upgrade rspec to v3.12 --- spec/spec_helper.rb | 2 +- stripe-ruby-mock.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6736353ef..c4ebc76c7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,6 +1,6 @@ require 'set' -gem 'rspec', '~> 3.1' +gem 'rspec', '~> 3.12' require 'rspec' require 'stripe' require 'stripe_mock' diff --git a/stripe-ruby-mock.gemspec b/stripe-ruby-mock.gemspec index 20971300d..13f80242a 100644 --- a/stripe-ruby-mock.gemspec +++ b/stripe-ruby-mock.gemspec @@ -26,7 +26,7 @@ Gem::Specification.new do |gem| gem.add_dependency 'multi_json', '~> 1.0' gem.add_dependency 'dante', '>= 0.2.0' - gem.add_development_dependency 'rspec', '~> 3.7.0' + gem.add_development_dependency 'rspec', '~> 3.12' gem.add_development_dependency 'rubygems-tasks', '~> 0.2' gem.add_development_dependency 'thin', '~> 1.8.1' end From 1c616c1066ae029f9b307427a53967679e500c71 Mon Sep 17 00:00:00 2001 From: Fabiano Arruda Date: Wed, 10 Jan 2024 11:46:15 -0300 Subject: [PATCH 4/4] Adds optional `usage` introduced with stripe ruby v10.3 --- lib/stripe_mock/api/client.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/stripe_mock/api/client.rb b/lib/stripe_mock/api/client.rb index 08a14f69c..9227425eb 100644 --- a/lib/stripe_mock/api/client.rb +++ b/lib/stripe_mock/api/client.rb @@ -27,7 +27,7 @@ def self.stop_client(opts={}) private - def self.redirect_to_mock_server(method, url, api_key: nil, api_base: nil, params: {}, headers: {}) + def self.redirect_to_mock_server(method, url, api_key: nil, api_base: nil, usage: [], params: {}, headers: {}) handler = Instance.handler_for_method_url("#{method} #{url}") if mock_error = client.error_queue.error_for_handler_name(handler[:name])