stripe 4.9.0 → 5.1.0

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 (224) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +10 -0
  3. data/.rubocop.yml +28 -4
  4. data/.rubocop_todo.yml +11 -22
  5. data/.travis.yml +3 -6
  6. data/.vscode/extensions.json +7 -0
  7. data/.vscode/settings.json +8 -0
  8. data/CHANGELOG.md +102 -2
  9. data/Gemfile +2 -10
  10. data/README.md +96 -40
  11. data/Rakefile +8 -7
  12. data/VERSION +1 -1
  13. data/lib/stripe.rb +64 -85
  14. data/lib/stripe/api_operations/delete.rb +23 -1
  15. data/lib/stripe/api_operations/list.rb +0 -6
  16. data/lib/stripe/api_operations/nested_resource.rb +14 -7
  17. data/lib/stripe/api_operations/request.rb +3 -7
  18. data/lib/stripe/api_operations/save.rb +1 -3
  19. data/lib/stripe/api_resource.rb +50 -2
  20. data/lib/stripe/connection_manager.rb +141 -0
  21. data/lib/stripe/error_object.rb +94 -0
  22. data/lib/stripe/errors.rb +22 -9
  23. data/lib/stripe/list_object.rb +11 -5
  24. data/lib/stripe/multipart_encoder.rb +131 -0
  25. data/lib/stripe/object_types.rb +94 -0
  26. data/lib/stripe/resources.rb +77 -0
  27. data/lib/stripe/{account.rb → resources/account.rb} +49 -27
  28. data/lib/stripe/{account_link.rb → resources/account_link.rb} +1 -1
  29. data/lib/stripe/resources/alipay_account.rb +34 -0
  30. data/lib/stripe/{apple_pay_domain.rb → resources/apple_pay_domain.rb} +1 -1
  31. data/lib/stripe/resources/application_fee.rb +13 -0
  32. data/lib/stripe/resources/application_fee_refund.rb +30 -0
  33. data/lib/stripe/{balance.rb → resources/balance.rb} +1 -1
  34. data/lib/stripe/{balance_transaction.rb → resources/balance_transaction.rb} +1 -5
  35. data/lib/stripe/{bank_account.rb → resources/bank_account.rb} +14 -4
  36. data/lib/stripe/{bitcoin_receiver.rb → resources/bitcoin_receiver.rb} +3 -3
  37. data/lib/stripe/{bitcoin_transaction.rb → resources/bitcoin_transaction.rb} +1 -1
  38. data/lib/stripe/resources/capability.rb +33 -0
  39. data/lib/stripe/{card.rb → resources/card.rb} +12 -4
  40. data/lib/stripe/resources/charge.rb +22 -0
  41. data/lib/stripe/{checkout → resources/checkout}/session.rb +2 -2
  42. data/lib/stripe/{country_spec.rb → resources/country_spec.rb} +1 -1
  43. data/lib/stripe/{coupon.rb → resources/coupon.rb} +2 -2
  44. data/lib/stripe/resources/credit_note.rb +22 -0
  45. data/lib/stripe/resources/customer.rb +35 -0
  46. data/lib/stripe/resources/customer_balance_transaction.rb +30 -0
  47. data/lib/stripe/resources/discount.rb +7 -0
  48. data/lib/stripe/{dispute.rb → resources/dispute.rb} +9 -7
  49. data/lib/stripe/{ephemeral_key.rb → resources/ephemeral_key.rb} +5 -2
  50. data/lib/stripe/{event.rb → resources/event.rb} +1 -1
  51. data/lib/stripe/{exchange_rate.rb → resources/exchange_rate.rb} +1 -1
  52. data/lib/stripe/{file.rb → resources/file.rb} +8 -11
  53. data/lib/stripe/{file_link.rb → resources/file_link.rb} +2 -2
  54. data/lib/stripe/resources/invoice.rb +73 -0
  55. data/lib/stripe/{invoice_item.rb → resources/invoice_item.rb} +2 -2
  56. data/lib/stripe/{invoice_line_item.rb → resources/invoice_line_item.rb} +1 -1
  57. data/lib/stripe/resources/issuing/authorization.rb +33 -0
  58. data/lib/stripe/resources/issuing/card.rb +24 -0
  59. data/lib/stripe/{issuing → resources/issuing}/card_details.rb +1 -1
  60. data/lib/stripe/{issuing → resources/issuing}/cardholder.rb +2 -2
  61. data/lib/stripe/{issuing → resources/issuing}/dispute.rb +2 -2
  62. data/lib/stripe/{issuing → resources/issuing}/transaction.rb +2 -2
  63. data/lib/stripe/resources/login_link.rb +14 -0
  64. data/lib/stripe/resources/order.rb +32 -0
  65. data/lib/stripe/{order_return.rb → resources/order_return.rb} +1 -1
  66. data/lib/stripe/resources/payment_intent.rb +42 -0
  67. data/lib/stripe/resources/payment_method.rb +32 -0
  68. data/lib/stripe/resources/payout.rb +22 -0
  69. data/lib/stripe/{person.rb → resources/person.rb} +8 -3
  70. data/lib/stripe/{plan.rb → resources/plan.rb} +1 -1
  71. data/lib/stripe/{product.rb → resources/product.rb} +3 -3
  72. data/lib/stripe/resources/radar/early_fraud_warning.rb +11 -0
  73. data/lib/stripe/{radar → resources/radar}/value_list.rb +2 -2
  74. data/lib/stripe/{radar → resources/radar}/value_list_item.rb +2 -2
  75. data/lib/stripe/{recipient.rb → resources/recipient.rb} +2 -6
  76. data/lib/stripe/{recipient_transfer.rb → resources/recipient_transfer.rb} +1 -1
  77. data/lib/stripe/{refund.rb → resources/refund.rb} +1 -1
  78. data/lib/stripe/{reporting → resources/reporting}/report_run.rb +2 -2
  79. data/lib/stripe/{reporting → resources/reporting}/report_type.rb +2 -2
  80. data/lib/stripe/resources/reversal.rb +29 -0
  81. data/lib/stripe/resources/review.rb +20 -0
  82. data/lib/stripe/resources/setup_intent.rb +32 -0
  83. data/lib/stripe/{sigma → resources/sigma}/scheduled_query_run.rb +2 -2
  84. data/lib/stripe/{sku.rb → resources/sku.rb} +3 -3
  85. data/lib/stripe/{source.rb → resources/source.rb} +17 -15
  86. data/lib/stripe/{source_transaction.rb → resources/source_transaction.rb} +1 -1
  87. data/lib/stripe/resources/subscription.rb +25 -0
  88. data/lib/stripe/{subscription_item.rb → resources/subscription_item.rb} +5 -2
  89. data/lib/stripe/resources/subscription_schedule.rb +32 -0
  90. data/lib/stripe/resources/tax_id.rb +26 -0
  91. data/lib/stripe/resources/tax_rate.rb +11 -0
  92. data/lib/stripe/{terminal → resources/terminal}/connection_token.rb +2 -2
  93. data/lib/stripe/{terminal → resources/terminal}/location.rb +3 -2
  94. data/lib/stripe/{terminal → resources/terminal}/reader.rb +3 -2
  95. data/lib/stripe/{three_d_secure.rb → resources/three_d_secure.rb} +1 -1
  96. data/lib/stripe/{token.rb → resources/token.rb} +1 -1
  97. data/lib/stripe/resources/topup.rb +22 -0
  98. data/lib/stripe/resources/transfer.rb +26 -0
  99. data/lib/stripe/resources/usage_record.rb +7 -0
  100. data/lib/stripe/{usage_record_summary.rb → resources/usage_record_summary.rb} +1 -1
  101. data/lib/stripe/{webhook_endpoint.rb → resources/webhook_endpoint.rb} +2 -2
  102. data/lib/stripe/singleton_api_resource.rb +3 -1
  103. data/lib/stripe/stripe_client.rb +347 -218
  104. data/lib/stripe/stripe_object.rb +72 -59
  105. data/lib/stripe/stripe_response.rb +53 -21
  106. data/lib/stripe/util.rb +54 -109
  107. data/lib/stripe/version.rb +1 -1
  108. data/lib/stripe/webhook.rb +5 -3
  109. data/stripe.gemspec +14 -5
  110. data/test/stripe/account_link_test.rb +1 -1
  111. data/test/stripe/account_test.rb +193 -32
  112. data/test/stripe/alipay_account_test.rb +1 -1
  113. data/test/stripe/api_operations_test.rb +3 -4
  114. data/test/stripe/api_resource_test.rb +119 -30
  115. data/test/stripe/apple_pay_domain_test.rb +18 -5
  116. data/test/stripe/application_fee_refund_test.rb +1 -1
  117. data/test/stripe/application_fee_test.rb +45 -1
  118. data/test/stripe/balance_test.rb +1 -1
  119. data/test/stripe/balance_transaction_test.rb +20 -0
  120. data/test/stripe/bank_account_test.rb +1 -1
  121. data/test/stripe/capability_test.rb +45 -0
  122. data/test/stripe/charge_test.rb +13 -8
  123. data/test/stripe/checkout/session_test.rb +7 -1
  124. data/test/stripe/connection_manager_test.rb +138 -0
  125. data/test/stripe/country_spec_test.rb +1 -1
  126. data/test/stripe/coupon_test.rb +16 -6
  127. data/test/stripe/credit_note_test.rb +61 -0
  128. data/test/stripe/customer_balance_transaction_test.rb +37 -0
  129. data/test/stripe/customer_card_test.rb +1 -1
  130. data/test/stripe/customer_test.rb +151 -40
  131. data/test/stripe/dispute_test.rb +10 -1
  132. data/test/stripe/ephemeral_key_test.rb +8 -1
  133. data/test/stripe/errors_test.rb +30 -9
  134. data/test/stripe/exchange_rate_test.rb +1 -1
  135. data/test/stripe/file_link_test.rb +1 -1
  136. data/test/stripe/file_test.rb +19 -5
  137. data/test/stripe/invoice_item_test.rb +18 -7
  138. data/test/stripe/invoice_line_item_test.rb +1 -1
  139. data/test/stripe/invoice_test.rb +77 -9
  140. data/test/stripe/issuing/authorization_test.rb +33 -11
  141. data/test/stripe/issuing/card_test.rb +15 -6
  142. data/test/stripe/issuing/cardholder_test.rb +1 -1
  143. data/test/stripe/issuing/dispute_test.rb +1 -1
  144. data/test/stripe/issuing/transaction_test.rb +1 -1
  145. data/test/stripe/list_object_test.rb +1 -17
  146. data/test/stripe/login_link_test.rb +2 -2
  147. data/test/stripe/multipart_encoder_test.rb +130 -0
  148. data/test/stripe/oauth_test.rb +1 -1
  149. data/test/stripe/order_return_test.rb +1 -1
  150. data/test/stripe/order_test.rb +28 -3
  151. data/test/stripe/payment_intent_test.rb +31 -4
  152. data/test/stripe/payment_method_test.rb +84 -0
  153. data/test/stripe/payout_test.rb +8 -1
  154. data/test/stripe/person_test.rb +1 -1
  155. data/test/stripe/plan_test.rb +26 -20
  156. data/test/stripe/product_test.rb +16 -6
  157. data/test/stripe/radar/early_fraud_warning_test.rb +22 -0
  158. data/test/stripe/radar/value_list_item_test.rb +16 -6
  159. data/test/stripe/radar/value_list_test.rb +16 -6
  160. data/test/stripe/recipient_test.rb +18 -5
  161. data/test/stripe/refund_test.rb +1 -1
  162. data/test/stripe/reporting/report_run_test.rb +1 -1
  163. data/test/stripe/reporting/report_type_test.rb +1 -1
  164. data/test/stripe/reversal_test.rb +1 -1
  165. data/test/stripe/review_test.rb +1 -1
  166. data/test/stripe/setup_intent_test.rb +84 -0
  167. data/test/stripe/sigma/scheduled_query_run_test.rb +1 -1
  168. data/test/stripe/sku_test.rb +16 -6
  169. data/test/stripe/source_test.rb +14 -19
  170. data/test/stripe/source_transaction_test.rb +1 -1
  171. data/test/stripe/stripe_client_test.rb +242 -26
  172. data/test/stripe/stripe_object_test.rb +8 -36
  173. data/test/stripe/stripe_response_test.rb +71 -25
  174. data/test/stripe/subscription_item_test.rb +28 -6
  175. data/test/stripe/subscription_schedule_test.rb +19 -1
  176. data/test/stripe/subscription_test.rb +29 -9
  177. data/test/stripe/tax_id_test.rb +31 -0
  178. data/test/stripe/tax_rate_test.rb +43 -0
  179. data/test/stripe/terminal/connection_token_test.rb +1 -1
  180. data/test/stripe/terminal/location_test.rb +18 -1
  181. data/test/stripe/terminal/reader_test.rb +18 -1
  182. data/test/stripe/three_d_secure_test.rb +1 -1
  183. data/test/stripe/topup_test.rb +9 -1
  184. data/test/stripe/transfer_test.rb +46 -1
  185. data/test/stripe/usage_record_summary_test.rb +1 -1
  186. data/test/stripe/util_test.rb +1 -1
  187. data/test/stripe/webhook_endpoint_test.rb +18 -1
  188. data/test/stripe/webhook_test.rb +4 -4
  189. data/test/stripe_mock.rb +4 -3
  190. data/test/stripe_test.rb +1 -14
  191. data/test/test_helper.rb +14 -11
  192. metadata +117 -125
  193. data/lib/stripe/alipay_account.rb +0 -27
  194. data/lib/stripe/application_fee.rb +0 -23
  195. data/lib/stripe/application_fee_refund.rb +0 -22
  196. data/lib/stripe/charge.rb +0 -84
  197. data/lib/stripe/customer.rb +0 -90
  198. data/lib/stripe/invoice.rb +0 -48
  199. data/lib/stripe/issuer_fraud_record.rb +0 -9
  200. data/lib/stripe/issuing/authorization.rb +0 -22
  201. data/lib/stripe/issuing/card.rb +0 -18
  202. data/lib/stripe/login_link.rb +0 -11
  203. data/lib/stripe/order.rb +0 -31
  204. data/lib/stripe/payment_intent.rb +0 -26
  205. data/lib/stripe/payout.rb +0 -20
  206. data/lib/stripe/reversal.rb +0 -22
  207. data/lib/stripe/review.rb +0 -14
  208. data/lib/stripe/subscription.rb +0 -25
  209. data/lib/stripe/subscription_schedule.rb +0 -32
  210. data/lib/stripe/subscription_schedule_revision.rb +0 -25
  211. data/lib/stripe/topup.rb +0 -16
  212. data/lib/stripe/transfer.rb +0 -23
  213. data/lib/stripe/usage_record.rb +0 -14
  214. data/test/stripe/account_external_accounts_operations_test.rb +0 -69
  215. data/test/stripe/account_login_links_operations_test.rb +0 -21
  216. data/test/stripe/account_persons_operations_test.rb +0 -70
  217. data/test/stripe/application_fee_refunds_operations_test.rb +0 -56
  218. data/test/stripe/customer_sources_operations_test.rb +0 -64
  219. data/test/stripe/file_upload_test.rb +0 -76
  220. data/test/stripe/issuer_fraud_record_test.rb +0 -20
  221. data/test/stripe/subscription_schedule_revision_test.rb +0 -37
  222. data/test/stripe/subscription_schedule_revisions_operations_test.rb +0 -35
  223. data/test/stripe/transfer_reversals_operations_test.rb +0 -57
  224. data/test/stripe/usage_record_test.rb +0 -28
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class OrderReturnTest < Test::Unit::TestCase
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class OrderTest < Test::Unit::TestCase
@@ -42,6 +42,22 @@ module Stripe
42
42
  should "pay an order" do
43
43
  order = Stripe::Order.retrieve("or_123")
44
44
  order = order.pay(source: "tok_123")
45
+ assert_requested :post, "#{Stripe.api_base}/v1/orders/#{order.id}/pay"
46
+ assert order.is_a?(Stripe::Order)
47
+ end
48
+
49
+ should "pay an order without additional arguments" do
50
+ order = Stripe::Order.retrieve("or_123")
51
+ order = order.pay
52
+ assert_requested :post, "#{Stripe.api_base}/v1/orders/#{order.id}/pay"
53
+ assert order.is_a?(Stripe::Order)
54
+ end
55
+ end
56
+
57
+ context ".pay" do
58
+ should "pay an order" do
59
+ order = Stripe::Order.pay("or_123", source: "tok_123")
60
+ assert_requested :post, "#{Stripe.api_base}/v1/orders/or_123/pay"
45
61
  assert order.is_a?(Stripe::Order)
46
62
  end
47
63
  end
@@ -49,8 +65,17 @@ module Stripe
49
65
  context "#return_order" do
50
66
  should "return an order" do
51
67
  order = Stripe::Order.retrieve("or_123")
52
- order = order.return_order({})
53
- assert order.is_a?(Stripe::OrderReturn)
68
+ order_return = order.return_order({})
69
+ assert_requested :post, "#{Stripe.api_base}/v1/orders/#{order.id}/returns"
70
+ assert order_return.is_a?(Stripe::OrderReturn)
71
+ end
72
+ end
73
+
74
+ context ".return_order" do
75
+ should "return an order" do
76
+ order_return = Stripe::Order.return_order("or_123")
77
+ assert_requested :post, "#{Stripe.api_base}/v1/orders/or_123/returns"
78
+ assert order_return.is_a?(Stripe::OrderReturn)
54
79
  end
55
80
  end
56
81
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
- TEST_RESOURCE_ID = "pi_123".freeze
7
-
8
6
  class PaymentIntentTest < Test::Unit::TestCase
7
+ TEST_RESOURCE_ID = "pi_123"
8
+
9
9
  should "be listable" do
10
10
  payment_intents = Stripe::PaymentIntent.list
11
11
  assert_requested :get, "#{Stripe.api_base}/v1/payment_intents"
@@ -53,6 +53,15 @@ module Stripe
53
53
  end
54
54
  end
55
55
 
56
+ context ".cancel" do
57
+ should "cancel a payment_intent" do
58
+ payment_intent = Stripe::PaymentIntent.cancel("pi_123")
59
+
60
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/cancel"
61
+ assert payment_intent.is_a?(Stripe::PaymentIntent)
62
+ end
63
+ end
64
+
56
65
  context "#capture" do
57
66
  should "capture a payment_intent" do
58
67
  payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent")
@@ -65,16 +74,34 @@ module Stripe
65
74
  end
66
75
  end
67
76
 
77
+ context ".capture" do
78
+ should "capture a payment_intent" do
79
+ payment_intent = Stripe::PaymentIntent.capture("pi_123", amount_to_capture: 1234)
80
+
81
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/capture"
82
+ assert payment_intent.is_a?(Stripe::PaymentIntent)
83
+ end
84
+ end
85
+
68
86
  context "#confirm" do
69
87
  should "confirm a payment_intent" do
70
88
  payment_intent = Stripe::PaymentIntent.construct_from(id: "pi_123", object: "payment_intent")
71
89
  payment_intent = payment_intent.confirm(
72
- source: "src_123"
90
+ payment_method: "pm_123"
73
91
  )
74
92
 
75
93
  assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/confirm"
76
94
  assert payment_intent.is_a?(Stripe::PaymentIntent)
77
95
  end
78
96
  end
97
+
98
+ context ".confirm" do
99
+ should "confirm a payment_intent" do
100
+ payment_intent = Stripe::PaymentIntent.confirm("pi_123", payment_method: "pm_123")
101
+
102
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_intents/pi_123/confirm"
103
+ assert payment_intent.is_a?(Stripe::PaymentIntent)
104
+ end
105
+ end
79
106
  end
80
107
  end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../test_helper", __dir__)
4
+
5
+ module Stripe
6
+ class PaymentMethodTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ payment_methods = Stripe::PaymentMethod.list(
9
+ customer: "cus_123",
10
+ type: "card"
11
+ )
12
+ assert_requested :get, "#{Stripe.api_base}/v1/payment_methods?customer=cus_123&type=card"
13
+ assert payment_methods.data.is_a?(Array)
14
+ assert payment_methods.first.is_a?(Stripe::PaymentMethod)
15
+ end
16
+
17
+ should "be retrievable" do
18
+ payment_method = Stripe::PaymentMethod.retrieve("pm_123")
19
+ assert_requested :get, "#{Stripe.api_base}/v1/payment_methods/pm_123"
20
+ assert payment_method.is_a?(Stripe::PaymentMethod)
21
+ end
22
+
23
+ should "be creatable" do
24
+ payment_method = Stripe::PaymentMethod.create(
25
+ type: "card"
26
+ )
27
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods"
28
+ assert payment_method.is_a?(Stripe::PaymentMethod)
29
+ end
30
+
31
+ should "be saveable" do
32
+ payment_method = Stripe::PaymentMethod.retrieve("pm_123")
33
+ payment_method.metadata["key"] = "value"
34
+ payment_method.save
35
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/#{payment_method.id}"
36
+ end
37
+
38
+ should "be updateable" do
39
+ payment_method = Stripe::PaymentMethod.update("pm_123", metadata: { key: "value" })
40
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/pm_123"
41
+ assert payment_method.is_a?(Stripe::PaymentMethod)
42
+ end
43
+
44
+ context "#attach" do
45
+ should "attach payment_method" do
46
+ payment_method = Stripe::PaymentMethod.construct_from(id: "pm_123", object: "payment_method")
47
+ payment_method = payment_method.attach(
48
+ customer: "cus_123"
49
+ )
50
+
51
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/pm_123/attach"
52
+ assert payment_method.is_a?(Stripe::PaymentMethod)
53
+ end
54
+ end
55
+
56
+ context ".attach" do
57
+ should "attach payment_method" do
58
+ payment_method = Stripe::PaymentMethod.attach("pm_123", customer: "cus_123")
59
+
60
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/pm_123/attach"
61
+ assert payment_method.is_a?(Stripe::PaymentMethod)
62
+ end
63
+ end
64
+
65
+ context "#detach" do
66
+ should "detach payment_method" do
67
+ payment_method = Stripe::PaymentMethod.construct_from(id: "pm_123", object: "payment_method")
68
+ payment_method = payment_method.detach
69
+
70
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/pm_123/detach"
71
+ assert payment_method.is_a?(Stripe::PaymentMethod)
72
+ end
73
+ end
74
+
75
+ context ".detach" do
76
+ should "detach payment_method" do
77
+ payment_method = Stripe::PaymentMethod.detach("pm_123")
78
+
79
+ assert_requested :post, "#{Stripe.api_base}/v1/payment_methods/pm_123/detach"
80
+ assert payment_method.is_a?(Stripe::PaymentMethod)
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class PayoutTest < Test::Unit::TestCase
@@ -46,5 +46,12 @@ module Stripe
46
46
  assert payout.is_a?(Stripe::Payout)
47
47
  end
48
48
  end
49
+
50
+ context ".cancel" do
51
+ should "cancel a payout" do
52
+ payout = Stripe::Payout.cancel("pm_123")
53
+ assert payout.is_a?(Stripe::Payout)
54
+ end
55
+ end
49
56
  end
50
57
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class PersonTest < Test::Unit::TestCase
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class PlanTest < Test::Unit::TestCase
@@ -12,8 +12,8 @@ module Stripe
12
12
  end
13
13
 
14
14
  should "be retrievable" do
15
- plan = Stripe::Plan.retrieve("sapphire-elite")
16
- assert_requested :get, "#{Stripe.api_base}/v1/plans/sapphire-elite"
15
+ plan = Stripe::Plan.retrieve("pl_123")
16
+ assert_requested :get, "#{Stripe.api_base}/v1/plans/pl_123"
17
17
  assert plan.is_a?(Stripe::Plan)
18
18
  end
19
19
 
@@ -21,9 +21,8 @@ module Stripe
21
21
  plan = Stripe::Plan.create(
22
22
  amount: 5000,
23
23
  interval: "month",
24
- name: "Sapphire elite",
25
- currency: "usd",
26
- id: "sapphire-elite"
24
+ nickname: "Sapphire elite",
25
+ currency: "usd"
27
26
  )
28
27
  assert_requested :post, "#{Stripe.api_base}/v1/plans"
29
28
  assert plan.is_a?(Stripe::Plan)
@@ -33,9 +32,8 @@ module Stripe
33
32
  plan = Stripe::Plan.create(
34
33
  amount: 5000,
35
34
  interval: "month",
36
- name: "Sapphire elite",
35
+ nickname: "Sapphire elite",
37
36
  currency: "usd",
38
- id: "sapphire-elite",
39
37
  usage_type: "metered"
40
38
  )
41
39
  assert_requested :post, "#{Stripe.api_base}/v1/plans"
@@ -45,9 +43,8 @@ module Stripe
45
43
  should "be creatable with tiered configuration" do
46
44
  plan = Stripe::Plan.create(
47
45
  interval: "month",
48
- name: "Sapphire elite",
46
+ nickname: "Sapphire elite",
49
47
  currency: "usd",
50
- id: "sapphire-elite",
51
48
  billing_scheme: "tiered",
52
49
  tiers_mode: "volume",
53
50
  tiers: [{ up_to: 100, amount: 1000 }, { up_to: "inf", amount: 2000 }]
@@ -59,9 +56,8 @@ module Stripe
59
56
  should "be creatable with transform_usage" do
60
57
  plan = Stripe::Plan.create(
61
58
  interval: "month",
62
- name: "Sapphire elite",
59
+ nickname: "Sapphire elite",
63
60
  currency: "usd",
64
- id: "sapphire-elite",
65
61
  amount: 5000,
66
62
  transform_usage: { round: "up", divide_by: 50 }
67
63
  )
@@ -70,23 +66,33 @@ module Stripe
70
66
  end
71
67
 
72
68
  should "be saveable" do
73
- plan = Stripe::Plan.retrieve("sapphire-elite")
69
+ plan = Stripe::Plan.retrieve("pl_123")
74
70
  plan.metadata["key"] = "value"
75
71
  plan.save
76
72
  assert_requested :post, "#{Stripe.api_base}/v1/plans/#{plan.id}"
77
73
  end
78
74
 
79
75
  should "be updateable" do
80
- plan = Stripe::Plan.update("sapphire-elite", metadata: { foo: "bar" })
81
- assert_requested :post, "#{Stripe.api_base}/v1/plans/sapphire-elite"
76
+ plan = Stripe::Plan.update("pl_123", metadata: { foo: "bar" })
77
+ assert_requested :post, "#{Stripe.api_base}/v1/plans/pl_123"
82
78
  assert plan.is_a?(Stripe::Plan)
83
79
  end
84
80
 
85
- should "be deletable" do
86
- plan = Stripe::Plan.retrieve("sapphire-elite")
87
- plan = plan.delete
88
- assert_requested :delete, "#{Stripe.api_base}/v1/plans/#{plan.id}"
89
- assert plan.is_a?(Stripe::Plan)
81
+ context "#delete" do
82
+ should "be deletable" do
83
+ plan = Stripe::Plan.retrieve("pl_123")
84
+ plan = plan.delete
85
+ assert_requested :delete, "#{Stripe.api_base}/v1/plans/#{plan.id}"
86
+ assert plan.is_a?(Stripe::Plan)
87
+ end
88
+ end
89
+
90
+ context ".delete" do
91
+ should "be deletable" do
92
+ plan = Stripe::Plan.delete("pl_123")
93
+ assert_requested :delete, "#{Stripe.api_base}/v1/plans/pl_123"
94
+ assert plan.is_a?(Stripe::Plan)
95
+ end
90
96
  end
91
97
  end
92
98
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../test_helper", __FILE__)
3
+ require ::File.expand_path("../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  class ProductTest < Test::Unit::TestCase
@@ -39,11 +39,21 @@ module Stripe
39
39
  assert product.is_a?(Stripe::Product)
40
40
  end
41
41
 
42
- should "be deletable" do
43
- product = Stripe::Product.retrieve("prod_123")
44
- product = product.delete
45
- assert_requested :delete, "#{Stripe.api_base}/v1/products/#{product.id}"
46
- assert product.is_a?(Stripe::Product)
42
+ context "#delete" do
43
+ should "be deletable" do
44
+ product = Stripe::Product.retrieve("prod_123")
45
+ product = product.delete
46
+ assert_requested :delete, "#{Stripe.api_base}/v1/products/#{product.id}"
47
+ assert product.is_a?(Stripe::Product)
48
+ end
49
+ end
50
+
51
+ context ".delete" do
52
+ should "be deletable" do
53
+ product = Stripe::Product.delete("prod_123")
54
+ assert_requested :delete, "#{Stripe.api_base}/v1/products/prod_123"
55
+ assert product.is_a?(Stripe::Product)
56
+ end
47
57
  end
48
58
  end
49
59
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __dir__)
4
+
5
+ module Stripe
6
+ module Radar
7
+ class EarlyFraudWarningTest < Test::Unit::TestCase
8
+ should "be listable" do
9
+ warnings = Stripe::Radar::EarlyFraudWarning.list
10
+ assert_requested :get, "#{Stripe.api_base}/v1/radar/early_fraud_warnings"
11
+ assert warnings.data.is_a?(Array)
12
+ assert warnings.data[0].is_a?(Stripe::Radar::EarlyFraudWarning)
13
+ end
14
+
15
+ should "be retrievable" do
16
+ warning = Stripe::Radar::EarlyFraudWarning.retrieve("issfr_123")
17
+ assert_requested :get, "#{Stripe.api_base}/v1/radar/early_fraud_warnings/issfr_123"
18
+ assert warning.is_a?(Stripe::Radar::EarlyFraudWarning)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../../test_helper", __FILE__)
3
+ require ::File.expand_path("../../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  module Radar
@@ -27,11 +27,21 @@ module Stripe
27
27
  assert item.is_a?(Stripe::Radar::ValueListItem)
28
28
  end
29
29
 
30
- should "be deletable" do
31
- list = Stripe::Radar::ValueListItem.retrieve("rsli_123")
32
- list = list.delete
33
- assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_list_items/rsli_123"
34
- assert list.is_a?(Stripe::Radar::ValueListItem)
30
+ context "#delete" do
31
+ should "be deletable" do
32
+ list = Stripe::Radar::ValueListItem.retrieve("rsli_123")
33
+ list = list.delete
34
+ assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_list_items/rsli_123"
35
+ assert list.is_a?(Stripe::Radar::ValueListItem)
36
+ end
37
+ end
38
+
39
+ context ".delete" do
40
+ should "be deletable" do
41
+ list = Stripe::Radar::ValueListItem.delete("rsli_123")
42
+ assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_list_items/rsli_123"
43
+ assert list.is_a?(Stripe::Radar::ValueListItem)
44
+ end
35
45
  end
36
46
  end
37
47
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require ::File.expand_path("../../../test_helper", __FILE__)
3
+ require ::File.expand_path("../../test_helper", __dir__)
4
4
 
5
5
  module Stripe
6
6
  module Radar
@@ -40,11 +40,21 @@ module Stripe
40
40
  assert list.is_a?(Stripe::Radar::ValueList)
41
41
  end
42
42
 
43
- should "be deletable" do
44
- list = Stripe::Radar::ValueList.retrieve("rsl_123")
45
- list = list.delete
46
- assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123"
47
- assert list.is_a?(Stripe::Radar::ValueList)
43
+ context "#delete" do
44
+ should "be deletable" do
45
+ list = Stripe::Radar::ValueList.retrieve("rsl_123")
46
+ list = list.delete
47
+ assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123"
48
+ assert list.is_a?(Stripe::Radar::ValueList)
49
+ end
50
+ end
51
+
52
+ context ".delete" do
53
+ should "be deletable" do
54
+ list = Stripe::Radar::ValueList.delete("rsl_123")
55
+ assert_requested :delete, "#{Stripe.api_base}/v1/radar/value_lists/rsl_123"
56
+ assert list.is_a?(Stripe::Radar::ValueList)
57
+ end
48
58
  end
49
59
  end
50
60
  end