stripe-ruby-mock 2.5.8 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.travis.yml +6 -6
  4. data/README.md +8 -8
  5. data/lib/stripe_mock.rb +3 -0
  6. data/lib/stripe_mock/api/errors.rb +31 -28
  7. data/lib/stripe_mock/api/webhooks.rb +3 -0
  8. data/lib/stripe_mock/data.rb +140 -13
  9. data/lib/stripe_mock/instance.rb +10 -3
  10. data/lib/stripe_mock/request_handlers/balance_transactions.rb +2 -2
  11. data/lib/stripe_mock/request_handlers/helpers/subscription_helpers.rb +1 -1
  12. data/lib/stripe_mock/request_handlers/helpers/token_helpers.rb +1 -1
  13. data/lib/stripe_mock/request_handlers/invoices.rb +6 -1
  14. data/lib/stripe_mock/request_handlers/payment_intents.rb +175 -0
  15. data/lib/stripe_mock/request_handlers/payment_methods.rb +138 -0
  16. data/lib/stripe_mock/request_handlers/products.rb +1 -0
  17. data/lib/stripe_mock/request_handlers/setup_intents.rb +93 -0
  18. data/lib/stripe_mock/request_handlers/subscriptions.rb +17 -4
  19. data/lib/stripe_mock/request_handlers/validators/param_validators.rb +95 -9
  20. data/lib/stripe_mock/test_strategies/base.rb +42 -8
  21. data/lib/stripe_mock/test_strategies/live.rb +23 -12
  22. data/lib/stripe_mock/test_strategies/mock.rb +6 -2
  23. data/lib/stripe_mock/version.rb +1 -1
  24. data/lib/stripe_mock/webhook_fixtures/charge.failed.json +166 -38
  25. data/lib/stripe_mock/webhook_fixtures/customer.created.json +1 -0
  26. data/lib/stripe_mock/webhook_fixtures/customer.updated.json +1 -0
  27. data/lib/stripe_mock/webhook_fixtures/product.created.json +34 -0
  28. data/lib/stripe_mock/webhook_fixtures/product.deleted.json +34 -0
  29. data/lib/stripe_mock/webhook_fixtures/product.updated.json +38 -0
  30. data/spec/instance_spec.rb +6 -6
  31. data/spec/server_spec.rb +2 -1
  32. data/spec/shared_stripe_examples/account_examples.rb +1 -1
  33. data/spec/shared_stripe_examples/balance_transaction_examples.rb +3 -3
  34. data/spec/shared_stripe_examples/bank_examples.rb +3 -3
  35. data/spec/shared_stripe_examples/card_examples.rb +4 -4
  36. data/spec/shared_stripe_examples/charge_examples.rb +9 -22
  37. data/spec/shared_stripe_examples/coupon_examples.rb +1 -1
  38. data/spec/shared_stripe_examples/customer_examples.rb +44 -30
  39. data/spec/shared_stripe_examples/dispute_examples.rb +2 -2
  40. data/spec/shared_stripe_examples/error_mock_examples.rb +8 -7
  41. data/spec/shared_stripe_examples/external_account_examples.rb +3 -3
  42. data/spec/shared_stripe_examples/invoice_examples.rb +41 -39
  43. data/spec/shared_stripe_examples/invoice_item_examples.rb +1 -1
  44. data/spec/shared_stripe_examples/payment_intent_examples.rb +137 -0
  45. data/spec/shared_stripe_examples/payment_method_examples.rb +185 -0
  46. data/spec/shared_stripe_examples/payout_examples.rb +2 -2
  47. data/spec/shared_stripe_examples/plan_examples.rb +135 -92
  48. data/spec/shared_stripe_examples/product_examples.rb +155 -0
  49. data/spec/shared_stripe_examples/refund_examples.rb +25 -21
  50. data/spec/shared_stripe_examples/setup_intent_examples.rb +68 -0
  51. data/spec/shared_stripe_examples/subscription_examples.rb +281 -310
  52. data/spec/shared_stripe_examples/subscription_items_examples.rb +3 -2
  53. data/spec/shared_stripe_examples/transfer_examples.rb +6 -6
  54. data/spec/shared_stripe_examples/webhook_event_examples.rb +11 -11
  55. data/spec/spec_helper.rb +3 -4
  56. data/spec/stripe_mock_spec.rb +2 -2
  57. data/spec/support/shared_contexts/stripe_validator_spec.rb +8 -0
  58. data/spec/support/stripe_examples.rb +3 -0
  59. data/stripe-ruby-mock.gemspec +2 -2
  60. metadata +47 -27
  61. data/spec/shared_stripe_examples/product_example.rb +0 -65
@@ -2,8 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  shared_examples 'Subscription Items API' do
4
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') }
5
+ let(:product) { stripe_helper.create_product(name: 'Silver Product') }
6
+ let(:plan) { stripe_helper.create_plan(product: product.id, id: 'silver_plan') }
7
+ let(:plan2) { stripe_helper.create_plan(amount: 100, id: 'one_more_1_plan', product: product.id) }
7
8
  let(:customer) { Stripe::Customer.create(source: stripe_helper.generate_card_token) }
8
9
  let(:subscription) { Stripe::Subscription.create(customer: customer.id, items: [{ plan: plan.id }]) }
9
10
 
@@ -40,22 +40,22 @@ shared_examples 'Transfer API' do
40
40
  end
41
41
 
42
42
  it "without params retrieves all tripe transfers" do
43
- expect(Stripe::Transfer.all.count).to eq(3)
43
+ expect(Stripe::Transfer.list.count).to eq(3)
44
44
  end
45
45
 
46
46
  it "accepts a limit param" do
47
- expect(Stripe::Transfer.all(limit: 2).count).to eq(2)
47
+ expect(Stripe::Transfer.list(limit: 2).count).to eq(2)
48
48
  end
49
49
 
50
50
  it "filters the search to a specific destination" do
51
51
  d2 = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", business_name: "MyCo")
52
52
  Stripe::Transfer.create(amount: "100", currency: "usd", destination: d2.id)
53
53
 
54
- expect(Stripe::Transfer.all(destination: d2.id).count).to eq(1)
54
+ expect(Stripe::Transfer.list(destination: d2.id).count).to eq(1)
55
55
  end
56
56
 
57
57
  it "disallows unknown parameters" do
58
- expect { Stripe::Transfer.all(recipient: "foo") }.to raise_error {|e|
58
+ expect { Stripe::Transfer.list(recipient: "foo") }.to raise_error {|e|
59
59
  expect(e).to be_a Stripe::InvalidRequestError
60
60
  expect(e.param).to eq("recipient")
61
61
  expect(e.message).to eq("Received unknown parameter: recipient")
@@ -104,7 +104,7 @@ shared_examples 'Transfer API' do
104
104
  end
105
105
 
106
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")
107
+ dest = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", requested_capabilities: ['card_payments', 'platform_payments'])
108
108
  expect { Stripe::Transfer.create(amount: '400.2',
109
109
  currency: 'usd',
110
110
  destination: dest.id,
@@ -116,7 +116,7 @@ shared_examples 'Transfer API' do
116
116
  end
117
117
 
118
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")
119
+ dest = Stripe::Account.create(type: "custom", email: "#{SecureRandom.uuid}@example.com", requested_capabilities: ['card_payments', 'platform_payments'])
120
120
  expect { Stripe::Transfer.create(amount: '-400',
121
121
  currency: 'usd',
122
122
  destination: dest.id,
@@ -168,7 +168,7 @@ shared_examples 'Webhook Events API' do
168
168
  expect(invoice_item_created_event).to be_a(Stripe::Event)
169
169
  expect(invoice_item_created_event).to_not be_nil
170
170
 
171
- events = Stripe::Event.all
171
+ events = Stripe::Event.list
172
172
 
173
173
  expect(events.count).to eq(5)
174
174
  expect(events.map &:id).to include(customer_created_event.id, plan_created_event.id, coupon_created_event.id, invoice_created_event.id, invoice_item_created_event.id)
@@ -196,7 +196,7 @@ shared_examples 'Webhook Events API' do
196
196
  expect(invoice_item_created_event).to be_a(Stripe::Event)
197
197
  expect(invoice_item_created_event).to_not be_nil
198
198
 
199
- events = Stripe::Event.all(limit: 3)
199
+ events = Stripe::Event.list(limit: 3)
200
200
 
201
201
  expect(events.count).to eq(3)
202
202
  expect(events.map &:id).to include(invoice_item_created_event.id, invoice_created_event.id, coupon_created_event.id)
@@ -204,9 +204,9 @@ shared_examples 'Webhook Events API' do
204
204
  end
205
205
 
206
206
  end
207
-
208
- describe 'Subscription events' do
209
- it "Checks for billing items in customer.subscription.created" do
207
+
208
+ describe 'Subscription events' do
209
+ it "Checks for billing items in customer.subscription.created" do
210
210
  subscription_created_event = StripeMock.mock_webhook_event('customer.subscription.created')
211
211
  expect(subscription_created_event).to be_a(Stripe::Event)
212
212
  expect(subscription_created_event.id).to_not be_nil
@@ -216,7 +216,7 @@ shared_examples 'Webhook Events API' do
216
216
  expect(subscription_created_event.data.object.items.data.first.id).to eq('si_00000000000000')
217
217
  end
218
218
 
219
- it "Checks for billing items in customer.subscription.deleted" do
219
+ it "Checks for billing items in customer.subscription.deleted" do
220
220
  subscription_deleted_event = StripeMock.mock_webhook_event('customer.subscription.deleted')
221
221
  expect(subscription_deleted_event).to be_a(Stripe::Event)
222
222
  expect(subscription_deleted_event.id).to_not be_nil
@@ -225,8 +225,8 @@ shared_examples 'Webhook Events API' do
225
225
  expect(subscription_deleted_event.data.object.items.data.first).to respond_to(:plan)
226
226
  expect(subscription_deleted_event.data.object.items.data.first.id).to eq('si_00000000000000')
227
227
  end
228
-
229
- it "Checks for billing items in customer.subscription.updated" do
228
+
229
+ it "Checks for billing items in customer.subscription.updated" do
230
230
  subscription_updated_event = StripeMock.mock_webhook_event('customer.subscription.updated')
231
231
  expect(subscription_updated_event).to be_a(Stripe::Event)
232
232
  expect(subscription_updated_event.id).to_not be_nil
@@ -235,8 +235,8 @@ shared_examples 'Webhook Events API' do
235
235
  expect(subscription_updated_event.data.object.items.data.first).to respond_to(:plan)
236
236
  expect(subscription_updated_event.data.object.items.data.first.id).to eq('si_00000000000000')
237
237
  end
238
-
239
- it "Checks for billing items in customer.subscription.trial_will_end" do
238
+
239
+ it "Checks for billing items in customer.subscription.trial_will_end" do
240
240
  subscription_trial_will_end_event = StripeMock.mock_webhook_event('customer.subscription.trial_will_end')
241
241
  expect(subscription_trial_will_end_event).to be_a(Stripe::Event)
242
242
  expect(subscription_trial_will_end_event.id).to_not be_nil
@@ -247,7 +247,7 @@ shared_examples 'Webhook Events API' do
247
247
  end
248
248
  end
249
249
 
250
- describe 'Invoices events' do
250
+ describe 'Invoices events' do
251
251
  it "Checks for billing items in invoice.payment_succeeded" do
252
252
  invoice_payment_succeeded = StripeMock.mock_webhook_event('invoice.payment_succeeded')
253
253
  expect(invoice_payment_succeeded).to be_a(Stripe::Event)
@@ -30,10 +30,9 @@ RSpec.configure do |c|
30
30
  if ENV['IS_TRAVIS']
31
31
  puts "Travis ruby version: #{RUBY_VERSION}"
32
32
  api_key = case RUBY_VERSION
33
- when '2.0.0' then ENV['STRIPE_TEST_SECRET_KEY_A']
34
- when '2.1.10' then ENV['STRIPE_TEST_SECRET_KEY_B']
35
- when '2.2.7' then ENV['STRIPE_TEST_SECRET_KEY_C']
36
- when '2.3.4' then ENV['STRIPE_TEST_SECRET_KEY_D']
33
+ when '2.4.6' then ENV['STRIPE_TEST_SECRET_KEY_A']
34
+ when '2.5.5' then ENV['STRIPE_TEST_SECRET_KEY_B']
35
+ when '2.6.3' then ENV['STRIPE_TEST_SECRET_KEY_C']
37
36
  end
38
37
  else
39
38
  api_key = ENV['STRIPE_TEST_SECRET_KEY']
@@ -18,14 +18,14 @@ describe StripeMock do
18
18
  StripeMock.start
19
19
  Stripe::StripeClient.active_client.execute_request(:xtest, '/', api_key: 'abcde') # no error
20
20
  StripeMock.stop
21
- expect { Stripe::StripeClient.active_client.execute_request(:x, '/', api_key: 'abcde') }.to raise_error ArgumentError
21
+ expect { Stripe::StripeClient.active_client.execute_request(:x, '/', api_key: 'abcde') }.to raise_error Stripe::APIError
22
22
  end
23
23
 
24
24
  it "reverts overriding stripe's execute_request method in other threads" do
25
25
  StripeMock.start
26
26
  Thread.new { Stripe::StripeClient.active_client.execute_request(:xtest, '/', api_key: 'abcde') }.join # no error
27
27
  StripeMock.stop
28
- expect { Thread.new { Stripe::StripeClient.active_client.execute_request(:x, '/', api_key: 'abcde') }.join }.to raise_error ArgumentError
28
+ expect { Thread.new { Stripe::StripeClient.active_client.execute_request(:x, '/', api_key: 'abcde') }.join }.to raise_error Stripe::APIError
29
29
  end
30
30
 
31
31
  it "does not persist data between mock sessions" do
@@ -0,0 +1,8 @@
1
+
2
+ class StripeValidator
3
+ include StripeMock::RequestHandlers::ParamValidators
4
+ end
5
+
6
+ RSpec.shared_context "stripe validator", shared_context: :metadata do
7
+ let(:stripe_validator) { StripeValidator.new }
8
+ end
@@ -25,6 +25,9 @@ def it_behaves_like_stripe(&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
+ it_behaves_like 'PaymentIntent API', &block
29
+ it_behaves_like 'PaymentMethod API', &block
30
+ it_behaves_like 'SetupIntent API', &block
28
31
  it_behaves_like 'Stripe Error Mocking', &block
29
32
  it_behaves_like 'Customer Subscriptions', &block
30
33
  it_behaves_like 'Subscription Items API', &block
@@ -17,11 +17,11 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ['lib']
19
19
 
20
- gem.add_dependency 'stripe', '>= 2.0.3'
20
+ gem.add_dependency 'stripe', '> 5', '< 6'
21
21
  gem.add_dependency 'multi_json', '~> 1.0'
22
22
  gem.add_dependency 'dante', '>= 0.2.0'
23
23
 
24
- gem.add_development_dependency 'rspec', '~> 3.1.0'
24
+ gem.add_development_dependency 'rspec', '~> 3.7.0'
25
25
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
26
26
  gem.add_development_dependency 'thin', '~> 1.6.4'
27
27
  end
metadata CHANGED
@@ -1,97 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-ruby-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.8
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gilbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-25 00:00:00.000000000 Z
11
+ date: 2019-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: stripe
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.3
19
+ version: '5'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - ">"
28
+ - !ruby/object:Gem::Version
29
+ version: '5'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 2.0.3
32
+ version: '6'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: multi_json
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ~>
37
+ - - "~>"
32
38
  - !ruby/object:Gem::Version
33
39
  version: '1.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - ~>
44
+ - - "~>"
39
45
  - !ruby/object:Gem::Version
40
46
  version: '1.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: dante
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - '>='
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: 0.2.0
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - '>='
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: 0.2.0
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rspec
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - ~>
65
+ - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 3.1.0
67
+ version: 3.7.0
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - ~>
72
+ - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 3.1.0
74
+ version: 3.7.0
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rubygems-tasks
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ~>
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
81
  version: '0.2'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ~>
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
88
  version: '0.2'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: thin
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - ~>
93
+ - - "~>"
88
94
  - !ruby/object:Gem::Version
89
95
  version: 1.6.4
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
- - - ~>
100
+ - - "~>"
95
101
  - !ruby/object:Gem::Version
96
102
  version: 1.6.4
97
103
  description: A drop-in library to test stripe without hitting their servers
@@ -101,10 +107,10 @@ executables:
101
107
  extensions: []
102
108
  extra_rdoc_files: []
103
109
  files:
104
- - .env
105
- - .gitignore
106
- - .rspec
107
- - .travis.yml
110
+ - ".env"
111
+ - ".gitignore"
112
+ - ".rspec"
113
+ - ".travis.yml"
108
114
  - Gemfile
109
115
  - LICENSE.txt
110
116
  - README.md
@@ -157,11 +163,14 @@ files:
157
163
  - lib/stripe_mock/request_handlers/invoice_items.rb
158
164
  - lib/stripe_mock/request_handlers/invoices.rb
159
165
  - lib/stripe_mock/request_handlers/orders.rb
166
+ - lib/stripe_mock/request_handlers/payment_intents.rb
167
+ - lib/stripe_mock/request_handlers/payment_methods.rb
160
168
  - lib/stripe_mock/request_handlers/payouts.rb
161
169
  - lib/stripe_mock/request_handlers/plans.rb
162
170
  - lib/stripe_mock/request_handlers/products.rb
163
171
  - lib/stripe_mock/request_handlers/recipients.rb
164
172
  - lib/stripe_mock/request_handlers/refunds.rb
173
+ - lib/stripe_mock/request_handlers/setup_intents.rb
165
174
  - lib/stripe_mock/request_handlers/sources.rb
166
175
  - lib/stripe_mock/request_handlers/subscription_items.rb
167
176
  - lib/stripe_mock/request_handlers/subscriptions.rb
@@ -215,6 +224,9 @@ files:
215
224
  - lib/stripe_mock/webhook_fixtures/plan.created.json
216
225
  - lib/stripe_mock/webhook_fixtures/plan.deleted.json
217
226
  - lib/stripe_mock/webhook_fixtures/plan.updated.json
227
+ - lib/stripe_mock/webhook_fixtures/product.created.json
228
+ - lib/stripe_mock/webhook_fixtures/product.deleted.json
229
+ - lib/stripe_mock/webhook_fixtures/product.updated.json
218
230
  - lib/stripe_mock/webhook_fixtures/transfer.created.json
219
231
  - lib/stripe_mock/webhook_fixtures/transfer.failed.json
220
232
  - lib/stripe_mock/webhook_fixtures/transfer.paid.json
@@ -250,11 +262,14 @@ files:
250
262
  - spec/shared_stripe_examples/extra_features_examples.rb
251
263
  - spec/shared_stripe_examples/invoice_examples.rb
252
264
  - spec/shared_stripe_examples/invoice_item_examples.rb
265
+ - spec/shared_stripe_examples/payment_intent_examples.rb
266
+ - spec/shared_stripe_examples/payment_method_examples.rb
253
267
  - spec/shared_stripe_examples/payout_examples.rb
254
268
  - spec/shared_stripe_examples/plan_examples.rb
255
- - spec/shared_stripe_examples/product_example.rb
269
+ - spec/shared_stripe_examples/product_examples.rb
256
270
  - spec/shared_stripe_examples/recipient_examples.rb
257
271
  - spec/shared_stripe_examples/refund_examples.rb
272
+ - spec/shared_stripe_examples/setup_intent_examples.rb
258
273
  - spec/shared_stripe_examples/subscription_examples.rb
259
274
  - spec/shared_stripe_examples/subscription_items_examples.rb
260
275
  - spec/shared_stripe_examples/tax_rate_examples.rb
@@ -263,6 +278,7 @@ files:
263
278
  - spec/shared_stripe_examples/webhook_event_examples.rb
264
279
  - spec/spec_helper.rb
265
280
  - spec/stripe_mock_spec.rb
281
+ - spec/support/shared_contexts/stripe_validator_spec.rb
266
282
  - spec/support/stripe_examples.rb
267
283
  - spec/util_spec.rb
268
284
  - stripe-ruby-mock.gemspec
@@ -276,17 +292,17 @@ require_paths:
276
292
  - lib
277
293
  required_ruby_version: !ruby/object:Gem::Requirement
278
294
  requirements:
279
- - - '>='
295
+ - - ">="
280
296
  - !ruby/object:Gem::Version
281
297
  version: '0'
282
298
  required_rubygems_version: !ruby/object:Gem::Requirement
283
299
  requirements:
284
- - - '>='
300
+ - - ">="
285
301
  - !ruby/object:Gem::Version
286
302
  version: '0'
287
303
  requirements: []
288
304
  rubyforge_project:
289
- rubygems_version: 2.0.14.1
305
+ rubygems_version: 2.6.8
290
306
  signing_key:
291
307
  specification_version: 4
292
308
  summary: TDD with stripe
@@ -321,11 +337,14 @@ test_files:
321
337
  - spec/shared_stripe_examples/extra_features_examples.rb
322
338
  - spec/shared_stripe_examples/invoice_examples.rb
323
339
  - spec/shared_stripe_examples/invoice_item_examples.rb
340
+ - spec/shared_stripe_examples/payment_intent_examples.rb
341
+ - spec/shared_stripe_examples/payment_method_examples.rb
324
342
  - spec/shared_stripe_examples/payout_examples.rb
325
343
  - spec/shared_stripe_examples/plan_examples.rb
326
- - spec/shared_stripe_examples/product_example.rb
344
+ - spec/shared_stripe_examples/product_examples.rb
327
345
  - spec/shared_stripe_examples/recipient_examples.rb
328
346
  - spec/shared_stripe_examples/refund_examples.rb
347
+ - spec/shared_stripe_examples/setup_intent_examples.rb
329
348
  - spec/shared_stripe_examples/subscription_examples.rb
330
349
  - spec/shared_stripe_examples/subscription_items_examples.rb
331
350
  - spec/shared_stripe_examples/tax_rate_examples.rb
@@ -334,5 +353,6 @@ test_files:
334
353
  - spec/shared_stripe_examples/webhook_event_examples.rb
335
354
  - spec/spec_helper.rb
336
355
  - spec/stripe_mock_spec.rb
356
+ - spec/support/shared_contexts/stripe_validator_spec.rb
337
357
  - spec/support/stripe_examples.rb
338
358
  - spec/util_spec.rb
@@ -1,65 +0,0 @@
1
- require 'spec_helper'
2
-
3
- shared_examples 'Product API' do
4
- it 'creates a product' do
5
- product = Stripe::Product.create(
6
- name: 'my awesome product',
7
- type: 'service'
8
- )
9
-
10
- expect(product.name).to eq 'my awesome product'
11
- expect(product.type).to eq 'service'
12
- end
13
-
14
- it 'retrieves a product' do
15
- Stripe::Product.create(
16
- id: 'test_prod_1',
17
- name: 'my awesome product',
18
- type: 'service'
19
- )
20
-
21
- product = Stripe::Product.retrieve('test_prod_1')
22
-
23
- expect(product.name).to eq 'my awesome product'
24
- expect(product.type).to eq 'service'
25
- end
26
-
27
- it 'updates a product' do
28
- Stripe::Product.create(
29
- id: 'test_prod_1',
30
- name: 'my awesome product',
31
- type: 'service'
32
- )
33
-
34
- Stripe::Product.update('test_prod_1', name: 'my lame product')
35
-
36
- product = Stripe::Product.retrieve('test_prod_1')
37
-
38
- expect(product.name).to eq 'my lame product'
39
- end
40
-
41
- it 'lists all products' do
42
- 2.times do |n|
43
- Stripe::Product.create(
44
- name: "product #{n}",
45
- type: 'service'
46
- )
47
- end
48
-
49
- products = Stripe::Product.list
50
-
51
- expect(products.map(&:name)).to match_array ['product 0', 'product 1']
52
- end
53
-
54
- it 'destroys a product', live: true do
55
- Stripe::Product.create(
56
- id: 'test_prod_1',
57
- name: 'my awesome product',
58
- type: 'service'
59
- )
60
-
61
- Stripe::Product.delete('test_prod_1')
62
-
63
- expect { Stripe::Product.retrieve('test_prod_1') }. to raise_error(Stripe::InvalidRequestError)
64
- end
65
- end