stripe-ruby-mock 2.5.4 → 2.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +1 -1
  4. data/lib/stripe_mock.rb +4 -0
  5. data/lib/stripe_mock/api/webhooks.rb +2 -0
  6. data/lib/stripe_mock/data.rb +78 -17
  7. data/lib/stripe_mock/data/list.rb +7 -2
  8. data/lib/stripe_mock/instance.rb +37 -3
  9. data/lib/stripe_mock/request_handlers/accounts.rb +16 -0
  10. data/lib/stripe_mock/request_handlers/charges.rb +7 -8
  11. data/lib/stripe_mock/request_handlers/customers.rb +2 -2
  12. data/lib/stripe_mock/request_handlers/ephemeral_key.rb +13 -0
  13. data/lib/stripe_mock/request_handlers/helpers/card_helpers.rb +1 -0
  14. data/lib/stripe_mock/request_handlers/helpers/coupon_helpers.rb +10 -11
  15. data/lib/stripe_mock/request_handlers/helpers/subscription_helpers.rb +20 -2
  16. data/lib/stripe_mock/request_handlers/invoices.rb +1 -1
  17. data/lib/stripe_mock/request_handlers/products.rb +43 -0
  18. data/lib/stripe_mock/request_handlers/refunds.rb +6 -3
  19. data/lib/stripe_mock/request_handlers/subscription_items.rb +36 -0
  20. data/lib/stripe_mock/request_handlers/subscriptions.rb +40 -22
  21. data/lib/stripe_mock/request_handlers/tax_rates.rb +36 -0
  22. data/lib/stripe_mock/request_handlers/tokens.rb +2 -2
  23. data/lib/stripe_mock/request_handlers/transfers.rb +10 -4
  24. data/lib/stripe_mock/request_handlers/validators/param_validators.rb +3 -0
  25. data/lib/stripe_mock/test_strategies/base.rb +4 -2
  26. data/lib/stripe_mock/version.rb +1 -1
  27. data/lib/stripe_mock/webhook_fixtures/charge.dispute.funds_reinstated.json +88 -0
  28. data/lib/stripe_mock/webhook_fixtures/charge.dispute.funds_withdrawn.json +88 -0
  29. data/lib/stripe_mock/webhook_fixtures/customer.subscription.created.json +2 -2
  30. data/lib/stripe_mock/webhook_fixtures/customer.subscription.deleted.json +2 -2
  31. data/lib/stripe_mock/webhook_fixtures/customer.subscription.trial_will_end.json +2 -2
  32. data/lib/stripe_mock/webhook_fixtures/customer.subscription.updated.json +3 -3
  33. data/lib/stripe_mock/webhook_fixtures/invoice.created.json +3 -2
  34. data/lib/stripe_mock/webhook_fixtures/invoice.payment_failed.json +1 -1
  35. data/lib/stripe_mock/webhook_fixtures/invoice.payment_succeeded.json +1 -1
  36. data/lib/stripe_mock/webhook_fixtures/invoice.updated.json +3 -2
  37. data/lib/stripe_mock/webhook_fixtures/plan.created.json +1 -1
  38. data/lib/stripe_mock/webhook_fixtures/plan.deleted.json +1 -1
  39. data/lib/stripe_mock/webhook_fixtures/plan.updated.json +1 -1
  40. data/spec/instance_spec.rb +31 -0
  41. data/spec/shared_stripe_examples/account_examples.rb +27 -0
  42. data/spec/shared_stripe_examples/charge_examples.rb +23 -14
  43. data/spec/shared_stripe_examples/customer_examples.rb +11 -1
  44. data/spec/shared_stripe_examples/ephemeral_key_examples.rb +17 -0
  45. data/spec/shared_stripe_examples/invoice_examples.rb +5 -5
  46. data/spec/shared_stripe_examples/plan_examples.rb +19 -4
  47. data/spec/shared_stripe_examples/product_example.rb +65 -0
  48. data/spec/shared_stripe_examples/refund_examples.rb +16 -10
  49. data/spec/shared_stripe_examples/subscription_examples.rb +176 -18
  50. data/spec/shared_stripe_examples/subscription_items_examples.rb +75 -0
  51. data/spec/shared_stripe_examples/tax_rate_examples.rb +42 -0
  52. data/spec/shared_stripe_examples/transfer_examples.rb +61 -30
  53. data/spec/support/stripe_examples.rb +4 -1
  54. metadata +16 -2
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples 'Subscription Items API' do
4
+ let(:stripe_helper) { StripeMock.create_test_helper }
5
+ let(:plan) { stripe_helper.create_plan }
6
+ let(:plan2) { stripe_helper.create_plan(amount: 100, id: 'one_more_1_plan') }
7
+ let(:customer) { Stripe::Customer.create(source: stripe_helper.generate_card_token) }
8
+ let(:subscription) { Stripe::Subscription.create(customer: customer.id, items: [{ plan: plan.id }]) }
9
+
10
+ context 'creates an item' do
11
+ it 'when required params only' do
12
+ item = Stripe::SubscriptionItem.create(plan: plan.id, subscription: subscription.id)
13
+
14
+ expect(item.id).to match(/^test_si/)
15
+ expect(item.plan.id).to eq(plan.id)
16
+ expect(item.subscription).to eq(subscription.id)
17
+ end
18
+ it 'when no subscription params' do
19
+ expect { Stripe::SubscriptionItem.create(plan: plan.id) }.to raise_error { |e|
20
+ expect(e).to be_a(Stripe::InvalidRequestError)
21
+ expect(e.param).to eq('subscription')
22
+ expect(e.message).to eq('Missing required param: subscription.')
23
+ }
24
+ end
25
+ it 'when no plan params' do
26
+ expect { Stripe::SubscriptionItem.create(subscription: subscription.id) }.to raise_error { |e|
27
+ expect(e).to be_a(Stripe::InvalidRequestError)
28
+ expect(e.param).to eq('plan')
29
+ expect(e.message).to eq('Missing required param: plan.')
30
+ }
31
+ end
32
+ end
33
+
34
+ context 'updates an item' do
35
+ let(:item) { Stripe::SubscriptionItem.create(plan: plan.id, subscription: subscription.id, quantity: 2 ) }
36
+
37
+ it 'updates plan' do
38
+ updated_item = Stripe::SubscriptionItem.update(item.id, plan: plan2.id)
39
+
40
+ expect(updated_item.plan.id).to eq(plan2.id)
41
+ end
42
+ it 'updates quantity' do
43
+ updated_item = Stripe::SubscriptionItem.update(item.id, quantity: 23)
44
+
45
+ expect(updated_item.quantity).to eq(23)
46
+ end
47
+ it 'when no existing item' do
48
+ expect { Stripe::SubscriptionItem.update('some_id') }.to raise_error { |e|
49
+ expect(e).to be_a(Stripe::InvalidRequestError)
50
+ expect(e.param).to eq('subscription_item')
51
+ expect(e.message).to eq('No such subscription_item: some_id')
52
+ }
53
+ end
54
+ end
55
+
56
+ context 'retrieves a list of items' do
57
+ before do
58
+ Stripe::SubscriptionItem.create(plan: plan.id, subscription: subscription.id, quantity: 2 )
59
+ Stripe::SubscriptionItem.create(plan: plan2.id, subscription: subscription.id, quantity: 20)
60
+ end
61
+
62
+ it 'retrieves all subscription items' do
63
+ all = Stripe::SubscriptionItem.list(subscription: subscription.id)
64
+
65
+ expect(all.count).to eq(2)
66
+ end
67
+ it 'when no subscription param' do
68
+ expect { Stripe::SubscriptionItem.list }.to raise_error { |e|
69
+ expect(e).to be_a(Stripe::InvalidRequestError)
70
+ expect(e.param).to eq('subscription')
71
+ expect(e.message).to eq('Missing required param: subscription.')
72
+ }
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples 'TaxRate API' do
4
+ context 'with created tax rate' do
5
+ let!(:rate) { Stripe::TaxRate.create }
6
+
7
+ it 'returns list of tax rates' do
8
+ rates = Stripe::TaxRate.list
9
+ expect(rates.count).to eq(1)
10
+ end
11
+
12
+ it 'retrieves tax rate' do
13
+ ret_rate = Stripe::TaxRate.retrieve(rate.id)
14
+ expect(ret_rate.id).not_to be_nil
15
+ expect(ret_rate.object).to eq('tax_rate')
16
+ expect(ret_rate.display_name).to eq('VAT')
17
+ expect(ret_rate.percentage).to eq(21.0)
18
+ expect(ret_rate.jurisdiction).to eq('EU')
19
+ expect(ret_rate.inclusive).to eq(false)
20
+ end
21
+
22
+ it 'updates tax rate' do
23
+ ret_rate = Stripe::TaxRate.update(rate.id, percentage: 30.5)
24
+ expect(ret_rate.id).not_to be_nil
25
+ expect(ret_rate.object).to eq('tax_rate')
26
+ expect(ret_rate.display_name).to eq('VAT')
27
+ expect(ret_rate.percentage).to eq(30.5)
28
+ expect(ret_rate.jurisdiction).to eq('EU')
29
+ expect(ret_rate.inclusive).to eq(false)
30
+ end
31
+ end
32
+
33
+ it 'creates tax rate' do
34
+ rate = Stripe::TaxRate.create
35
+ expect(rate.id).not_to be_nil
36
+ expect(rate.object).to eq('tax_rate')
37
+ expect(rate.display_name).to eq('VAT')
38
+ expect(rate.percentage).to eq(21.0)
39
+ expect(rate.jurisdiction).to eq('EU')
40
+ expect(rate.inclusive).to eq(false)
41
+ end
42
+ end
@@ -2,24 +2,40 @@ require 'spec_helper'
2
2
 
3
3
  shared_examples 'Transfer API' do
4
4
 
5
- it "creates a stripe transfer", skip: 'Stripe has deprecated Recipients' do
6
- recipient = Stripe::Recipient.create(type: "corporation", name: "MyCo")
7
- transfer = Stripe::Transfer.create(amount: "100", currency: "usd", recipient: recipient.id)
5
+ it "creates a stripe transfer" do
6
+ destination = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", id: "acct_12345")
7
+ transfer = Stripe::Transfer.create(amount: 100, currency: "usd", destination: destination.id)
8
8
 
9
9
  expect(transfer.id).to match /^test_tr/
10
- expect(transfer.amount).to eq('100')
10
+ expect(transfer.amount).to eq(100)
11
+ expect(transfer.amount_reversed).to eq(0)
12
+ expect(transfer.balance_transaction).to eq('txn_2dyYXXP90MN26R')
13
+ expect(transfer.created).to eq(1304114826)
11
14
  expect(transfer.currency).to eq('usd')
12
- expect(transfer.recipient).to eq recipient.id
15
+ expect(transfer.description).to eq('Transfer description')
16
+ expect(transfer.destination).to eq('acct_12345')
17
+ expect(transfer.destination_payment).to eq("py_164xRvKbnvuxQXGuVFV2pZo1")
18
+ expect(transfer.livemode).to eq(false)
19
+ expect(transfer.metadata).to eq(Stripe::StripeObject.new)
20
+ expect(transfer.reversals).to eq(Stripe::ListObject.construct_from({
21
+ object: "list",
22
+ data: [],
23
+ total_count: 0,
24
+ has_more: false,
25
+ url: "/v1/transfers/#{transfer.id}/reversals"
26
+ }))
13
27
  expect(transfer.reversed).to eq(false)
14
- expect(transfer.metadata).to eq({})
28
+ expect(transfer.source_transaction).to eq("ch_164xRv2eZvKYlo2Clu1sIJWB")
29
+ expect(transfer.source_type).to eq("card")
30
+ expect(transfer.transfer_group).to eq("group_ch_164xRv2eZvKYlo2Clu1sIJWB")
15
31
  end
16
32
 
17
- describe "listing transfers", skip: 'Stripe has deprecated Recipients' do
18
- let(:recipient) { Stripe::Recipient.create(type: "corporation", name: "MyCo") }
33
+ describe "listing transfers" do
34
+ let(:destination) { Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", business_name: "MyCo") }
19
35
 
20
36
  before do
21
37
  3.times do
22
- Stripe::Transfer.create(amount: "100", currency: "usd", recipient: recipient.id)
38
+ Stripe::Transfer.create(amount: "100", currency: "usd", destination: destination.id)
23
39
  end
24
40
  end
25
41
 
@@ -31,27 +47,48 @@ shared_examples 'Transfer API' do
31
47
  expect(Stripe::Transfer.all(limit: 2).count).to eq(2)
32
48
  end
33
49
 
34
- it "filters the search to a specific recipient" do
35
- r2 = Stripe::Recipient.create(type: "corporation", name: "MyCo")
36
- Stripe::Transfer.create(amount: "100", currency: "usd", recipient: r2.id)
50
+ it "filters the search to a specific destination" do
51
+ d2 = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", business_name: "MyCo")
52
+ Stripe::Transfer.create(amount: "100", currency: "usd", destination: d2.id)
37
53
 
38
- expect(Stripe::Transfer.all(recipient: r2.id).count).to eq(1)
54
+ expect(Stripe::Transfer.all(destination: d2.id).count).to eq(1)
55
+ end
56
+
57
+ it "disallows unknown parameters" do
58
+ expect { Stripe::Transfer.all(recipient: "foo") }.to raise_error {|e|
59
+ expect(e).to be_a Stripe::InvalidRequestError
60
+ expect(e.param).to eq("recipient")
61
+ expect(e.message).to eq("Received unknown parameter: recipient")
62
+ expect(e.http_status).to eq(400)
63
+ }
39
64
  end
40
65
  end
41
66
 
42
67
 
43
68
  it "retrieves a stripe transfer" do
44
- original = Stripe::Transfer.create(amount: "100", currency: "usd")
69
+ original = Stripe::Transfer.create(amount: "100", currency: "usd")
45
70
  transfer = Stripe::Transfer.retrieve(original.id)
46
71
 
47
72
  expect(transfer.id).to eq(original.id)
73
+ expect(transfer.object).to eq(original.object)
48
74
  expect(transfer.amount).to eq(original.amount)
75
+ expect(transfer.amount_reversed).to eq(original.amount_reversed)
76
+ expect(transfer.balance_transaction).to eq(original.balance_transaction)
77
+ expect(transfer.created).to eq(original.created)
49
78
  expect(transfer.currency).to eq(original.currency)
50
- expect(transfer.recipient).to eq(original.recipient)
79
+ expect(transfer.description).to eq(original.description)
80
+ expect(transfer.destination).to eq(original.destination)
81
+ expect(transfer.destination_payment).to eq(original.destination_payment)
82
+ expect(transfer.livemode).to eq(original.livemode)
51
83
  expect(transfer.metadata).to eq(original.metadata)
84
+ expect(transfer.reversals).to eq(original.reversals)
85
+ expect(transfer.reversed).to eq(original.reversed)
86
+ expect(transfer.source_transaction).to eq(original.source_transaction)
87
+ expect(transfer.source_type).to eq(original.source_type)
88
+ expect(transfer.transfer_group).to eq(original.transfer_group)
52
89
  end
53
90
 
54
- it "canceles a stripe transfer " do
91
+ it "cancels a stripe transfer" do
55
92
  original = Stripe::Transfer.create(amount: "100", currency: "usd")
56
93
  res, api_key = Stripe::StripeClient.active_client.execute_request(:post, "/v1/transfers/#{original.id}/cancel", api_key: 'api_key')
57
94
 
@@ -66,29 +103,23 @@ shared_examples 'Transfer API' do
66
103
  }
67
104
  end
68
105
 
69
- it 'when amount is not integer', live: true, skip: 'Stripe has deprecated Recipients' do
70
- rec = Stripe::Recipient.create({
71
- type: 'individual',
72
- name: 'Alex Smith',
73
- })
106
+ it "when amount is not integer", live: true do
107
+ dest = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", business_name: "Alex Smith")
74
108
  expect { Stripe::Transfer.create(amount: '400.2',
75
- currency: 'usd',
76
- recipient: rec.id,
77
- description: 'Transfer for test@example.com') }.to raise_error { |e|
109
+ currency: 'usd',
110
+ destination: dest.id,
111
+ description: 'Transfer for test@example.com') }.to raise_error { |e|
78
112
  expect(e).to be_a Stripe::InvalidRequestError
79
113
  expect(e.param).to eq('amount')
80
114
  expect(e.http_status).to eq(400)
81
115
  }
82
116
  end
83
117
 
84
- it 'when amount is negative', live: true, skip: 'Stripe has deprecated Recipients' do
85
- rec = Stripe::Recipient.create({
86
- type: 'individual',
87
- name: 'Alex Smith',
88
- })
118
+ it "when amount is negative", live: true do
119
+ dest = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", business_name: "Alex Smith")
89
120
  expect { Stripe::Transfer.create(amount: '-400',
90
121
  currency: 'usd',
91
- recipient: rec.id,
122
+ destination: dest.id,
92
123
  description: 'Transfer for test@example.com') }.to raise_error { |e|
93
124
  expect(e).to be_a Stripe::InvalidRequestError
94
125
  expect(e.param).to eq('amount')
@@ -1,4 +1,3 @@
1
-
2
1
  def require_stripe_examples
3
2
  Dir["./spec/shared_stripe_examples/**/*.rb"].each {|f| require f}
4
3
  Dir["./spec/integration_examples/**/*.rb"].each {|f| require f}
@@ -21,14 +20,18 @@ def it_behaves_like_stripe(&block)
21
20
  it_behaves_like 'Invoice API', &block
22
21
  it_behaves_like 'Invoice Item API', &block
23
22
  it_behaves_like 'Plan API', &block
23
+ it_behaves_like 'Product API', &block
24
24
  it_behaves_like 'Recipient API', &block
25
25
  it_behaves_like 'Refund API', &block
26
26
  it_behaves_like 'Transfer API', &block
27
27
  it_behaves_like 'Payout API', &block
28
28
  it_behaves_like 'Stripe Error Mocking', &block
29
29
  it_behaves_like 'Customer Subscriptions', &block
30
+ it_behaves_like 'Subscription Items API', &block
30
31
  it_behaves_like 'Webhook Events API', &block
31
32
  it_behaves_like 'Country Spec API', &block
33
+ it_behaves_like 'EphemeralKey API', &block
34
+ it_behaves_like 'TaxRate API', &block
32
35
 
33
36
  # Integration tests
34
37
  it_behaves_like 'Multiple Customer Cards'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-ruby-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.4
4
+ version: 2.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gilbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-04 00:00:00.000000000 Z
11
+ date: 2019-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: stripe
@@ -144,6 +144,7 @@ files:
144
144
  - lib/stripe_mock/request_handlers/coupons.rb
145
145
  - lib/stripe_mock/request_handlers/customers.rb
146
146
  - lib/stripe_mock/request_handlers/disputes.rb
147
+ - lib/stripe_mock/request_handlers/ephemeral_key.rb
147
148
  - lib/stripe_mock/request_handlers/events.rb
148
149
  - lib/stripe_mock/request_handlers/external_accounts.rb
149
150
  - lib/stripe_mock/request_handlers/helpers/bank_account_helpers.rb
@@ -158,10 +159,13 @@ files:
158
159
  - lib/stripe_mock/request_handlers/orders.rb
159
160
  - lib/stripe_mock/request_handlers/payouts.rb
160
161
  - lib/stripe_mock/request_handlers/plans.rb
162
+ - lib/stripe_mock/request_handlers/products.rb
161
163
  - lib/stripe_mock/request_handlers/recipients.rb
162
164
  - lib/stripe_mock/request_handlers/refunds.rb
163
165
  - lib/stripe_mock/request_handlers/sources.rb
166
+ - lib/stripe_mock/request_handlers/subscription_items.rb
164
167
  - lib/stripe_mock/request_handlers/subscriptions.rb
168
+ - lib/stripe_mock/request_handlers/tax_rates.rb
165
169
  - lib/stripe_mock/request_handlers/tokens.rb
166
170
  - lib/stripe_mock/request_handlers/transfers.rb
167
171
  - lib/stripe_mock/request_handlers/validators/param_validators.rb
@@ -179,6 +183,8 @@ files:
179
183
  - lib/stripe_mock/webhook_fixtures/balance.available.json
180
184
  - lib/stripe_mock/webhook_fixtures/charge.dispute.closed.json
181
185
  - lib/stripe_mock/webhook_fixtures/charge.dispute.created.json
186
+ - lib/stripe_mock/webhook_fixtures/charge.dispute.funds_reinstated.json
187
+ - lib/stripe_mock/webhook_fixtures/charge.dispute.funds_withdrawn.json
182
188
  - lib/stripe_mock/webhook_fixtures/charge.dispute.updated.json
183
189
  - lib/stripe_mock/webhook_fixtures/charge.failed.json
184
190
  - lib/stripe_mock/webhook_fixtures/charge.refunded.json
@@ -238,6 +244,7 @@ files:
238
244
  - spec/shared_stripe_examples/coupon_examples.rb
239
245
  - spec/shared_stripe_examples/customer_examples.rb
240
246
  - spec/shared_stripe_examples/dispute_examples.rb
247
+ - spec/shared_stripe_examples/ephemeral_key_examples.rb
241
248
  - spec/shared_stripe_examples/error_mock_examples.rb
242
249
  - spec/shared_stripe_examples/external_account_examples.rb
243
250
  - spec/shared_stripe_examples/extra_features_examples.rb
@@ -245,9 +252,12 @@ files:
245
252
  - spec/shared_stripe_examples/invoice_item_examples.rb
246
253
  - spec/shared_stripe_examples/payout_examples.rb
247
254
  - spec/shared_stripe_examples/plan_examples.rb
255
+ - spec/shared_stripe_examples/product_example.rb
248
256
  - spec/shared_stripe_examples/recipient_examples.rb
249
257
  - spec/shared_stripe_examples/refund_examples.rb
250
258
  - spec/shared_stripe_examples/subscription_examples.rb
259
+ - spec/shared_stripe_examples/subscription_items_examples.rb
260
+ - spec/shared_stripe_examples/tax_rate_examples.rb
251
261
  - spec/shared_stripe_examples/transfer_examples.rb
252
262
  - spec/shared_stripe_examples/validation_examples.rb
253
263
  - spec/shared_stripe_examples/webhook_event_examples.rb
@@ -305,6 +315,7 @@ test_files:
305
315
  - spec/shared_stripe_examples/coupon_examples.rb
306
316
  - spec/shared_stripe_examples/customer_examples.rb
307
317
  - spec/shared_stripe_examples/dispute_examples.rb
318
+ - spec/shared_stripe_examples/ephemeral_key_examples.rb
308
319
  - spec/shared_stripe_examples/error_mock_examples.rb
309
320
  - spec/shared_stripe_examples/external_account_examples.rb
310
321
  - spec/shared_stripe_examples/extra_features_examples.rb
@@ -312,9 +323,12 @@ test_files:
312
323
  - spec/shared_stripe_examples/invoice_item_examples.rb
313
324
  - spec/shared_stripe_examples/payout_examples.rb
314
325
  - spec/shared_stripe_examples/plan_examples.rb
326
+ - spec/shared_stripe_examples/product_example.rb
315
327
  - spec/shared_stripe_examples/recipient_examples.rb
316
328
  - spec/shared_stripe_examples/refund_examples.rb
317
329
  - spec/shared_stripe_examples/subscription_examples.rb
330
+ - spec/shared_stripe_examples/subscription_items_examples.rb
331
+ - spec/shared_stripe_examples/tax_rate_examples.rb
318
332
  - spec/shared_stripe_examples/transfer_examples.rb
319
333
  - spec/shared_stripe_examples/validation_examples.rb
320
334
  - spec/shared_stripe_examples/webhook_event_examples.rb