stripe 3.5.3 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31bc202ae773c518a1f9d9382b08c76df41d4252
4
- data.tar.gz: 0a8007b7d10c5c4a7cc4f8721553f58042e7ee9b
3
+ metadata.gz: fce7c416687a674cc3e18f9bce163fc7d0b33ade
4
+ data.tar.gz: c0029ea90f92b4efb77a3364d2aa515c3340ed36
5
5
  SHA512:
6
- metadata.gz: 82412fadaa6d945c754cd1712eebad95cb6fc5ab35564ae7878e1c3d7095e4794821fc44119a45c0bd15c52818301c110b33964665c6fb741c2affd5d08237f1
7
- data.tar.gz: cd2a601d172ae2a1eabf23616832d40716eebdea2c00e101a51419e9f06021463aa4abdb6776e6089df47d163ac87bd9659028e198d8da1e2bd2fb0495e5ba2a
6
+ metadata.gz: 54bc6830f3379c2ed2391ec15fe640af867f2aaf2dfd317b926a059d19aa8539c71387c852a30fdd0724e36d885b01bb43740fed307b7b5cd4a56cf105ceaad0
7
+ data.tar.gz: ea69c31f24db48ed9a7d37ce133805be8004fa82a92c9deddf6aaad6127fa4d4326d12892f40fe73d60f16ca404e31646a2d896f36f6dae0edd94a8064f325b9
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.6.0 - 2017-10-17
4
+ * [#597](https://github.com/stripe/stripe-ruby#597) Add static methods to manipulate resources from parent
5
+ * `Account` gains methods for external accounts and login links (e.g. `.create_account`, `create_login_link`)
6
+ * `ApplicationFee` gains methods for refunds
7
+ * `Customer` gains methods for sources
8
+ * `Transfer` gains methods for reversals
9
+
3
10
  ## 3.5.3 - 2017-10-16
4
11
  * [#594](https://github.com/stripe/stripe-ruby#594) Make sure that `StripeObject`'s `#deep_copy` maintains original class
5
12
  * [#595](https://github.com/stripe/stripe-ruby#595) Allow `Object#method` to be called on `StripeObject` even if it conflicts with an accessor
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.5.3
1
+ 3.6.0
@@ -16,10 +16,11 @@ require "stripe/version"
16
16
 
17
17
  # API operations
18
18
  require "stripe/api_operations/create"
19
- require "stripe/api_operations/save"
20
19
  require "stripe/api_operations/delete"
21
20
  require "stripe/api_operations/list"
21
+ require "stripe/api_operations/nested_resource"
22
22
  require "stripe/api_operations/request"
23
+ require "stripe/api_operations/save"
23
24
 
24
25
  # API resource support classes
25
26
  require "stripe/errors"
@@ -5,10 +5,13 @@ module Stripe
5
5
  extend Stripe::APIOperations::List
6
6
  include Stripe::APIOperations::Delete
7
7
  include Stripe::APIOperations::Save
8
+ extend Stripe::APIOperations::NestedResource
8
9
 
9
10
  OBJECT_NAME = "account".freeze
10
11
 
11
12
  save_nested_resource :external_account
13
+ nested_resource_class_methods :external_account
14
+ nested_resource_class_methods :login_link, operations: %i[create]
12
15
 
13
16
  # This method is deprecated. Please use `#external_account=` instead.
14
17
  save_nested_resource :bank_account
@@ -0,0 +1,61 @@
1
+ module Stripe
2
+ module APIOperations
3
+ # Adds methods to help manipulate a subresource from its parent resource so
4
+ # that it's possible to do so from a static context (i.e. without a
5
+ # pre-existing collection of subresources on the parent).
6
+ #
7
+ # For examle, a transfer gains the static methods for reversals so that the
8
+ # methods `.create_reversal`, `.retrieve_reversal`, `.update_reversal`,
9
+ # etc. all become available.
10
+ module NestedResource
11
+ def nested_resource_class_methods(resource, path: nil, operations: nil)
12
+ path ||= "#{resource}s"
13
+ operations ||= %i[create retrieve update delete list]
14
+
15
+ resource_url_method = :"#{resource}s_url"
16
+ define_singleton_method(resource_url_method) do |id, nested_id = nil|
17
+ url = "#{resource_url}/#{CGI.escape(id)}/#{CGI.escape(path)}"
18
+ url += "/#{CGI.escape(nested_id)}" unless nested_id.nil?
19
+ url
20
+ end
21
+
22
+ operations.each do |operation|
23
+ case operation
24
+ when :create
25
+ define_singleton_method(:"create_#{resource}") do |id, params = {}, opts = {}|
26
+ url = send(resource_url_method, id)
27
+ resp, opts = request(:post, url, params, opts)
28
+ Util.convert_to_stripe_object(resp.data, opts)
29
+ end
30
+ when :retrieve
31
+ define_singleton_method(:"retrieve_#{resource}") do |id, nested_id, opts = {}|
32
+ url = send(resource_url_method, id, nested_id)
33
+ resp, opts = request(:get, url, {}, opts)
34
+ Util.convert_to_stripe_object(resp.data, opts)
35
+ end
36
+ when :update
37
+ define_singleton_method(:"update_#{resource}") do |id, nested_id, params = {}, opts = {}|
38
+ url = send(resource_url_method, id, nested_id)
39
+ resp, opts = request(:post, url, params, opts)
40
+ Util.convert_to_stripe_object(resp.data, opts)
41
+ end
42
+ when :delete
43
+ define_singleton_method(:"delete_#{resource}") do |id, nested_id, params = {}, opts = {}|
44
+ url = send(resource_url_method, id, nested_id)
45
+ resp, opts = request(:delete, url, params, opts)
46
+ Util.convert_to_stripe_object(resp.data, opts)
47
+ end
48
+ when :list
49
+ define_singleton_method(:"list_#{resource}s") do |id, params = {}, opts = {}|
50
+ url = send(resource_url_method, id)
51
+ resp, opts = request(:get, url, params, opts)
52
+ Util.convert_to_stripe_object(resp.data, opts)
53
+ end
54
+ else
55
+ raise ArgumentError, "Unknown operation: #{operation.inspect}"
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -1,9 +1,12 @@
1
1
  module Stripe
2
2
  class ApplicationFee < APIResource
3
3
  extend Stripe::APIOperations::List
4
+ extend Stripe::APIOperations::NestedResource
4
5
 
5
6
  OBJECT_NAME = "application_fee".freeze
6
7
 
8
+ nested_resource_class_methods :refund, operations: %i[create retrieve update list]
9
+
7
10
  def self.resource_url
8
11
  "/v1/application_fees"
9
12
  end
@@ -4,10 +4,18 @@ module Stripe
4
4
  include Stripe::APIOperations::Delete
5
5
  include Stripe::APIOperations::Save
6
6
  extend Stripe::APIOperations::List
7
+ extend Stripe::APIOperations::NestedResource
7
8
 
8
9
  OBJECT_NAME = "customer".freeze
9
10
 
10
11
  save_nested_resource :source
12
+ nested_resource_class_methods :source
13
+
14
+ # The API request for deleting a card or bank account and for detaching a
15
+ # source object are the same.
16
+ class << self
17
+ alias detach_source delete_source
18
+ end
11
19
 
12
20
  def add_invoice_item(params, opts = {})
13
21
  opts = @opts.merge(Util.normalize_opts(opts))
@@ -3,9 +3,12 @@ module Stripe
3
3
  extend Stripe::APIOperations::List
4
4
  extend Stripe::APIOperations::Create
5
5
  include Stripe::APIOperations::Save
6
+ extend Stripe::APIOperations::NestedResource
6
7
 
7
8
  OBJECT_NAME = "transfer".freeze
8
9
 
10
+ nested_resource_class_methods :reversal, operations: %i[create retrieve update list]
11
+
9
12
  def cancel
10
13
  resp, api_key = request(:post, cancel_url)
11
14
  initialize_from(resp.data, api_key)
@@ -1,3 +1,3 @@
1
1
  module Stripe
2
- VERSION = "3.5.3".freeze
2
+ VERSION = "3.6.0".freeze
3
3
  end
@@ -0,0 +1,66 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ module Stripe
4
+ class AccountExternalAccountsOperationsTest < Test::Unit::TestCase
5
+ setup do
6
+ @account_id = "acct_123"
7
+ @external_account_id = "ba_123"
8
+ end
9
+
10
+ context "#create_external_account" do
11
+ should "create an external account" do
12
+ external_account = Stripe::Account.create_external_account(
13
+ @account_id,
14
+ external_account: "btok_123"
15
+ )
16
+ assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts"
17
+ assert external_account.is_a?(Stripe::BankAccount)
18
+ end
19
+ end
20
+
21
+ context "#retrieve_external_account" do
22
+ should "retrieve an external account" do
23
+ external_account = Stripe::Account.retrieve_external_account(
24
+ @account_id,
25
+ @external_account_id
26
+ )
27
+ assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
28
+ assert external_account.is_a?(Stripe::BankAccount)
29
+ end
30
+ end
31
+
32
+ context "#update_external_account" do
33
+ should "update an external account" do
34
+ external_account = Stripe::Account.update_external_account(
35
+ @account_id,
36
+ @external_account_id,
37
+ metadata: { foo: "bar" }
38
+ )
39
+ assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
40
+ assert external_account.is_a?(Stripe::BankAccount)
41
+ end
42
+ end
43
+
44
+ context "#delete_external_account" do
45
+ should "delete an external_account" do
46
+ external_account = Stripe::Account.delete_external_account(
47
+ @account_id,
48
+ @external_account_id
49
+ )
50
+ assert_requested :delete, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts/#{@external_account_id}"
51
+ assert external_account.is_a?(Stripe::BankAccount)
52
+ end
53
+ end
54
+
55
+ context "#list_external_accounts" do
56
+ should "list the account's external accounts" do
57
+ external_accounts = Stripe::Account.list_external_accounts(
58
+ @account_id
59
+ )
60
+ assert_requested :get, "#{Stripe.api_base}/v1/accounts/#{@account_id}/external_accounts"
61
+ assert external_accounts.is_a?(Stripe::ListObject)
62
+ assert external_accounts.data.is_a?(Array)
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ module Stripe
4
+ class AccountLoginLinksOperationsTest < Test::Unit::TestCase
5
+ setup do
6
+ @account_id = "acct_123"
7
+ end
8
+
9
+ context "#create_login_link" do
10
+ should "create a login link" do
11
+ login_link = Stripe::Account.create_login_link(
12
+ @account_id
13
+ )
14
+ assert_requested :post, "#{Stripe.api_base}/v1/accounts/#{@account_id}/login_links"
15
+ assert login_link.is_a?(Stripe::LoginLink)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -27,5 +27,49 @@ module Stripe
27
27
  assert_equal "Cannot update protected field: protected", e.message
28
28
  end
29
29
  end
30
+
31
+ context ".nested_resource_class_methods" do
32
+ class MainResource < APIResource
33
+ extend Stripe::APIOperations::NestedResource
34
+ nested_resource_class_methods :nested
35
+ end
36
+
37
+ should "define a create method" do
38
+ stub_request(:post, "#{Stripe.api_base}/v1/mainresources/id/nesteds")
39
+ .with(body: { foo: "bar" })
40
+ .to_return(body: JSON.generate(id: "nested_id", object: "nested", foo: "bar"))
41
+ nested_resource = MainResource.create_nested("id", foo: "bar")
42
+ assert_equal "bar", nested_resource.foo
43
+ end
44
+
45
+ should "define a retrieve method" do
46
+ stub_request(:get, "#{Stripe.api_base}/v1/mainresources/id/nesteds/nested_id")
47
+ .to_return(body: JSON.generate(id: "nested_id", object: "nested", foo: "bar"))
48
+ nested_resource = MainResource.retrieve_nested("id", "nested_id")
49
+ assert_equal "bar", nested_resource.foo
50
+ end
51
+
52
+ should "define an update method" do
53
+ stub_request(:post, "#{Stripe.api_base}/v1/mainresources/id/nesteds/nested_id")
54
+ .with(body: { foo: "baz" })
55
+ .to_return(body: JSON.generate(id: "nested_id", object: "nested", foo: "baz"))
56
+ nested_resource = MainResource.update_nested("id", "nested_id", foo: "baz")
57
+ assert_equal "baz", nested_resource.foo
58
+ end
59
+
60
+ should "define a delete method" do
61
+ stub_request(:delete, "#{Stripe.api_base}/v1/mainresources/id/nesteds/nested_id")
62
+ .to_return(body: JSON.generate(id: "nested_id", object: "nested", deleted: true))
63
+ nested_resource = MainResource.delete_nested("id", "nested_id")
64
+ assert_equal true, nested_resource.deleted
65
+ end
66
+
67
+ should "define a list method" do
68
+ stub_request(:get, "#{Stripe.api_base}/v1/mainresources/id/nesteds")
69
+ .to_return(body: JSON.generate(object: "list", data: []))
70
+ nested_resources = MainResource.list_nesteds("id")
71
+ assert nested_resources.data.is_a?(Array)
72
+ end
73
+ end
30
74
  end
31
75
  end
@@ -0,0 +1,54 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ module Stripe
4
+ class ApplicationFeeRefundsOperationsTest < Test::Unit::TestCase
5
+ setup do
6
+ @application_fee_id = "fee_123"
7
+ @refund_id = "fr_123"
8
+ end
9
+
10
+ context "#create_refund" do
11
+ should "create a refund" do
12
+ refund = Stripe::ApplicationFee.create_refund(
13
+ @application_fee_id
14
+ )
15
+ assert_requested :post, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds"
16
+ assert refund.is_a?(Stripe::ApplicationFeeRefund)
17
+ end
18
+ end
19
+
20
+ context "#retrieve_refund" do
21
+ should "retrieve a refund" do
22
+ refund = Stripe::ApplicationFee.retrieve_refund(
23
+ @application_fee_id,
24
+ @refund_id
25
+ )
26
+ assert_requested :get, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds/#{@refund_id}"
27
+ assert refund.is_a?(Stripe::ApplicationFeeRefund)
28
+ end
29
+ end
30
+
31
+ context "#update_refund" do
32
+ should "update a refund" do
33
+ refund = Stripe::ApplicationFee.update_refund(
34
+ @application_fee_id,
35
+ @refund_id,
36
+ metadata: { foo: "bar" }
37
+ )
38
+ assert_requested :post, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds/#{@refund_id}"
39
+ assert refund.is_a?(Stripe::ApplicationFeeRefund)
40
+ end
41
+ end
42
+
43
+ context "#list_refunds" do
44
+ should "list the application fee's refuns" do
45
+ refunds = Stripe::ApplicationFee.list_refunds(
46
+ @application_fee_id
47
+ )
48
+ assert_requested :get, "#{Stripe.api_base}/v1/application_fees/#{@application_fee_id}/refunds"
49
+ assert refunds.is_a?(Stripe::ListObject)
50
+ assert refunds.data.is_a?(Array)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,66 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ module Stripe
4
+ class CustomerSourcesOperationsTest < Test::Unit::TestCase
5
+ setup do
6
+ @customer_id = "cus_123"
7
+ @source_id = "ba_123"
8
+ end
9
+
10
+ context "#create_source" do
11
+ should "create a source" do
12
+ source = Stripe::Customer.create_source(
13
+ @customer_id,
14
+ source: "tok_123"
15
+ )
16
+ assert_requested :post, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources"
17
+ assert source.is_a?(Stripe::BankAccount)
18
+ end
19
+ end
20
+
21
+ context "#retrieve_source" do
22
+ should "retrieve a source" do
23
+ source = Stripe::Customer.retrieve_source(
24
+ @customer_id,
25
+ @source_id
26
+ )
27
+ assert_requested :get, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
28
+ assert source.is_a?(Stripe::BankAccount)
29
+ end
30
+ end
31
+
32
+ context "#update_source" do
33
+ should "update a source" do
34
+ source = Stripe::Customer.update_source(
35
+ @customer_id,
36
+ @source_id,
37
+ metadata: { foo: "bar" }
38
+ )
39
+ assert_requested :post, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
40
+ assert source.is_a?(Stripe::Card)
41
+ end
42
+ end
43
+
44
+ context "#delete_source" do
45
+ should "delete a source" do
46
+ source = Stripe::Customer.delete_source(
47
+ @customer_id,
48
+ @source_id
49
+ )
50
+ assert_requested :delete, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources/#{@source_id}"
51
+ assert source.is_a?(Stripe::BankAccount)
52
+ end
53
+ end
54
+
55
+ context "#list_sources" do
56
+ should "list the customer's sources" do
57
+ sources = Stripe::Customer.list_sources(
58
+ @customer_id
59
+ )
60
+ assert_requested :get, "#{Stripe.api_base}/v1/customers/#{@customer_id}/sources"
61
+ assert sources.is_a?(Stripe::ListObject)
62
+ assert sources.data.is_a?(Array)
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,55 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ module Stripe
4
+ class TransferReversalsOperationsTest < Test::Unit::TestCase
5
+ setup do
6
+ @transfer_id = "tr_123"
7
+ @reversal_id = "trr_123"
8
+ end
9
+
10
+ context "#create_reversal" do
11
+ should "create a reversal" do
12
+ reversal = Stripe::Transfer.create_reversal(
13
+ @transfer_id,
14
+ amount: 100
15
+ )
16
+ assert_requested :post, "#{Stripe.api_base}/v1/transfers/#{@transfer_id}/reversals"
17
+ assert reversal.is_a?(Stripe::Reversal)
18
+ end
19
+ end
20
+
21
+ context "#retrieve_reversal" do
22
+ should "retrieve a reversal" do
23
+ reversal = Stripe::Transfer.retrieve_reversal(
24
+ @transfer_id,
25
+ @reversal_id
26
+ )
27
+ assert_requested :get, "#{Stripe.api_base}/v1/transfers/#{@transfer_id}/reversals/#{@reversal_id}"
28
+ assert reversal.is_a?(Stripe::Reversal)
29
+ end
30
+ end
31
+
32
+ context "#update_reversal" do
33
+ should "update a reversal" do
34
+ reversal = Stripe::Transfer.update_reversal(
35
+ @transfer_id,
36
+ @reversal_id,
37
+ metadata: { foo: "bar" }
38
+ )
39
+ assert_requested :post, "#{Stripe.api_base}/v1/transfers/#{@transfer_id}/reversals/#{@reversal_id}"
40
+ assert reversal.is_a?(Stripe::Reversal)
41
+ end
42
+ end
43
+
44
+ context "#list_reversals" do
45
+ should "list the transfer's reversals" do
46
+ reversals = Stripe::Transfer.list_reversals(
47
+ @transfer_id
48
+ )
49
+ assert_requested :get, "#{Stripe.api_base}/v1/transfers/#{@transfer_id}/reversals"
50
+ assert reversals.is_a?(Stripe::ListObject)
51
+ assert reversals.data.is_a?(Array)
52
+ end
53
+ end
54
+ end
55
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.3
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-16 00:00:00.000000000 Z
11
+ date: 2017-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -54,6 +54,7 @@ files:
54
54
  - lib/stripe/api_operations/create.rb
55
55
  - lib/stripe/api_operations/delete.rb
56
56
  - lib/stripe/api_operations/list.rb
57
+ - lib/stripe/api_operations/nested_resource.rb
57
58
  - lib/stripe/api_operations/request.rb
58
59
  - lib/stripe/api_operations/save.rb
59
60
  - lib/stripe/api_resource.rb
@@ -106,12 +107,15 @@ files:
106
107
  - lib/stripe/webhook.rb
107
108
  - stripe.gemspec
108
109
  - test/api_stub_helpers.rb
110
+ - test/stripe/account_external_accounts_operations_test.rb
111
+ - test/stripe/account_login_links_operations_test.rb
109
112
  - test/stripe/account_test.rb
110
113
  - test/stripe/alipay_account_test.rb
111
114
  - test/stripe/api_operations_test.rb
112
115
  - test/stripe/api_resource_test.rb
113
116
  - test/stripe/apple_pay_domain_test.rb
114
117
  - test/stripe/application_fee_refund_test.rb
118
+ - test/stripe/application_fee_refunds_operations_test.rb
115
119
  - test/stripe/application_fee_test.rb
116
120
  - test/stripe/balance_test.rb
117
121
  - test/stripe/bank_account_test.rb
@@ -119,6 +123,7 @@ files:
119
123
  - test/stripe/country_spec_test.rb
120
124
  - test/stripe/coupon_test.rb
121
125
  - test/stripe/customer_card_test.rb
126
+ - test/stripe/customer_sources_operations_test.rb
122
127
  - test/stripe/customer_test.rb
123
128
  - test/stripe/dispute_test.rb
124
129
  - test/stripe/ephemeral_key_test.rb
@@ -146,6 +151,7 @@ files:
146
151
  - test/stripe/subscription_item_test.rb
147
152
  - test/stripe/subscription_test.rb
148
153
  - test/stripe/three_d_secure_test.rb
154
+ - test/stripe/transfer_reversals_operations_test.rb
149
155
  - test/stripe/transfer_test.rb
150
156
  - test/stripe/util_test.rb
151
157
  - test/stripe/webhook_test.rb
@@ -178,12 +184,15 @@ specification_version: 4
178
184
  summary: Ruby bindings for the Stripe API
179
185
  test_files:
180
186
  - test/api_stub_helpers.rb
187
+ - test/stripe/account_external_accounts_operations_test.rb
188
+ - test/stripe/account_login_links_operations_test.rb
181
189
  - test/stripe/account_test.rb
182
190
  - test/stripe/alipay_account_test.rb
183
191
  - test/stripe/api_operations_test.rb
184
192
  - test/stripe/api_resource_test.rb
185
193
  - test/stripe/apple_pay_domain_test.rb
186
194
  - test/stripe/application_fee_refund_test.rb
195
+ - test/stripe/application_fee_refunds_operations_test.rb
187
196
  - test/stripe/application_fee_test.rb
188
197
  - test/stripe/balance_test.rb
189
198
  - test/stripe/bank_account_test.rb
@@ -191,6 +200,7 @@ test_files:
191
200
  - test/stripe/country_spec_test.rb
192
201
  - test/stripe/coupon_test.rb
193
202
  - test/stripe/customer_card_test.rb
203
+ - test/stripe/customer_sources_operations_test.rb
194
204
  - test/stripe/customer_test.rb
195
205
  - test/stripe/dispute_test.rb
196
206
  - test/stripe/ephemeral_key_test.rb
@@ -218,6 +228,7 @@ test_files:
218
228
  - test/stripe/subscription_item_test.rb
219
229
  - test/stripe/subscription_test.rb
220
230
  - test/stripe/three_d_secure_test.rb
231
+ - test/stripe/transfer_reversals_operations_test.rb
221
232
  - test/stripe/transfer_test.rb
222
233
  - test/stripe/util_test.rb
223
234
  - test/stripe/webhook_test.rb