fat_zebra 3.2.8 → 3.3.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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -9
  3. data/fat_zebra.gemspec +9 -9
  4. data/lib/fat_zebra/api_resource.rb +0 -1
  5. data/lib/fat_zebra/object_helper.rb +2 -2
  6. data/lib/fat_zebra/request.rb +5 -9
  7. data/lib/fat_zebra/util.rb +3 -3
  8. data/lib/fat_zebra/utilities/apple_pay/domain.rb +23 -8
  9. data/lib/fat_zebra/validation.rb +1 -1
  10. data/lib/fat_zebra/version.rb +1 -2
  11. data/lib/fat_zebra.rb +0 -1
  12. metadata +20 -246
  13. data/.buildkite/pipeline.yml +0 -34
  14. data/.gitignore +0 -8
  15. data/.rspec +0 -0
  16. data/.rubocop.yml +0 -42
  17. data/.tool-versions +0 -1
  18. data/.travis.yml +0 -8
  19. data/Gemfile +0 -6
  20. data/Rakefile +0 -10
  21. data/spec/cassettes/FatZebra_Authenticate/_authenticate/validations/1_3_5_1.yml +0 -46
  22. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_1.yml +0 -90
  23. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_2.yml +0 -90
  24. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_1.yml +0 -90
  25. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_2.yml +0 -90
  26. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_1.yml +0 -90
  27. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_2.yml +0 -87
  28. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_3.yml +0 -92
  29. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_4.yml +0 -91
  30. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_type_validation/1_3_4_1.yml +0 -46
  31. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_invalid/returns_error_when_invalid_token.yml +0 -47
  32. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_valid/decodes_JWT.yml +0 -87
  33. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_given_params.yml +0 -44
  34. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_no_amount.yml +0 -44
  35. data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_amount_is_invalid.yml +0 -44
  36. data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_currency_is_invalid.yml +0 -46
  37. data/spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml +0 -53
  38. data/spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml +0 -53
  39. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml +0 -164
  40. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_2.yml +0 -164
  41. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_3.yml +0 -164
  42. data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_1.yml +0 -61
  43. data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_2.yml +0 -61
  44. data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_1.yml +0 -61
  45. data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_2.yml +0 -61
  46. data/spec/cassettes/FatZebra_Batch/_find/1_2_1.yml +0 -112
  47. data/spec/cassettes/FatZebra_Batch/_find/1_2_2.yml +0 -112
  48. data/spec/cassettes/FatZebra_Batch/_result/1_4_1.yml +0 -163
  49. data/spec/cassettes/FatZebra_Batch/_search/1_3_1.yml +0 -54
  50. data/spec/cassettes/FatZebra_Batch/_search/1_3_2.yml +0 -54
  51. data/spec/cassettes/FatZebra_Batch/_search/1_3_3.yml +0 -54
  52. data/spec/cassettes/FatZebra_Card/_create/1_1_1.yml +0 -54
  53. data/spec/cassettes/FatZebra_Card/_create/1_1_2.yml +0 -54
  54. data/spec/cassettes/FatZebra_Card/_create/1_1_3.yml +0 -54
  55. data/spec/cassettes/FatZebra_Card/_create/1_1_4.yml +0 -54
  56. data/spec/cassettes/FatZebra_Card/_create/1_1_5.yml +0 -54
  57. data/spec/cassettes/FatZebra_Card/_create/1_1_6.yml +0 -54
  58. data/spec/cassettes/FatZebra_Card/_find/1_3_1.yml +0 -111
  59. data/spec/cassettes/FatZebra_Card/_find/1_3_2.yml +0 -111
  60. data/spec/cassettes/FatZebra_Card/_update/1_2_1.yml +0 -105
  61. data/spec/cassettes/FatZebra_Card/_update/1_2_2.yml +0 -105
  62. data/spec/cassettes/FatZebra_Card/_update/1_2_3.yml +0 -105
  63. data/spec/cassettes/FatZebra_Card/_update/validations/1_2_4_1.yml +0 -54
  64. data/spec/cassettes/FatZebra_Customer/_create/1_1_1.yml +0 -55
  65. data/spec/cassettes/FatZebra_Customer/_create/1_1_2.yml +0 -55
  66. data/spec/cassettes/FatZebra_Customer/_create/1_1_3.yml +0 -55
  67. data/spec/cassettes/FatZebra_Customer/_create/1_1_4.yml +0 -55
  68. data/spec/cassettes/FatZebra_Customer/_create/1_1_5.yml +0 -55
  69. data/spec/cassettes/FatZebra_Customer/_create/1_1_6.yml +0 -55
  70. data/spec/cassettes/FatZebra_Customer/_delete/1_5_1.yml +0 -103
  71. data/spec/cassettes/FatZebra_Customer/_find/1_3_1.yml +0 -107
  72. data/spec/cassettes/FatZebra_Customer/_find/1_3_2.yml +0 -107
  73. data/spec/cassettes/FatZebra_Customer/_search/1_2_1.yml +0 -60
  74. data/spec/cassettes/FatZebra_Customer/_search/1_2_2.yml +0 -60
  75. data/spec/cassettes/FatZebra_Customer/_search/1_2_3.yml +0 -60
  76. data/spec/cassettes/FatZebra_Customer/_update/1_4_1.yml +0 -106
  77. data/spec/cassettes/FatZebra_Customer/_update/1_4_2.yml +0 -106
  78. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_1.yml +0 -52
  79. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_2.yml +0 -52
  80. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_3.yml +0 -52
  81. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_4.yml +0 -52
  82. data/spec/cassettes/FatZebra_DirectCredit/_create/validations/valid/1_1_5_1_1.yml +0 -52
  83. data/spec/cassettes/FatZebra_DirectCredit/_delete/1_4_1.yml +0 -99
  84. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_1.yml +0 -103
  85. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_2.yml +0 -103
  86. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_3.yml +0 -103
  87. data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_1.yml +0 -152
  88. data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_2.yml +0 -152
  89. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_1.yml +0 -52
  90. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml +0 -52
  91. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml +0 -52
  92. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml +0 -52
  93. data/spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml +0 -52
  94. data/spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml +0 -99
  95. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml +0 -103
  96. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_2.yml +0 -103
  97. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_3.yml +0 -103
  98. data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_1.yml +0 -152
  99. data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_2.yml +0 -152
  100. data/spec/cassettes/FatZebra_Information/_ping/1_1_1.yml +0 -54
  101. data/spec/cassettes/FatZebra_Information/_ping/1_1_2.yml +0 -54
  102. data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_1.yml +0 -222
  103. data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_2.yml +0 -222
  104. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml +0 -110
  105. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml +0 -110
  106. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml +0 -110
  107. data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_1.yml +0 -183
  108. data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_2.yml +0 -183
  109. data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_3.yml +0 -183
  110. data/spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml +0 -158
  111. data/spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml +0 -158
  112. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml +0 -167
  113. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_2.yml +0 -167
  114. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_3.yml +0 -167
  115. data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_1.yml +0 -166
  116. data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_2.yml +0 -166
  117. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_1.yml +0 -160
  118. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_2.yml +0 -160
  119. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_3.yml +0 -160
  120. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_1.yml +0 -166
  121. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_2.yml +0 -166
  122. data/spec/cassettes/FatZebra_Paypal_Authorization/_capture/returns_a_new_capture_record.yml +0 -45
  123. data/spec/cassettes/FatZebra_Paypal_Authorization/_find/when_found/returns_authorization.yml +0 -46
  124. data/spec/cassettes/FatZebra_Paypal_Authorization/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -46
  125. data/spec/cassettes/FatZebra_Paypal_Authorization/_void/returns_a_voided_capture_record.yml +0 -44
  126. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_charge/Valid_payload/returns_a_new_order_record.yml +0 -48
  127. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_find/when_found/returns_billing_agreement.yml +0 -48
  128. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -48
  129. data/spec/cassettes/FatZebra_Paypal_Capture/_find/when_found/returns_capture.yml +0 -47
  130. data/spec/cassettes/FatZebra_Paypal_Capture/_refund/returns_a_new_refund_record.yml +0 -45
  131. data/spec/cassettes/FatZebra_Paypal_Capture/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -49
  132. data/spec/cassettes/FatZebra_Paypal_Order/_find/when_found/returns_order.yml +0 -48
  133. data/spec/cassettes/FatZebra_Paypal_Order/_search/with_date_filter/returns_orders_created_after_start_date.yml +0 -55
  134. data/spec/cassettes/FatZebra_Paypal_Refund/_find/when_found/returns_refund.yml +0 -47
  135. data/spec/cassettes/FatZebra_Paypal_Refund/_search/with_date_filter/returns_all_refund_records_created_after_start_date.yml +0 -50
  136. data/spec/cassettes/FatZebra_Purchase/_capture/1_5_1.yml +0 -115
  137. data/spec/cassettes/FatZebra_Purchase/_capture/1_5_2.yml +0 -115
  138. data/spec/cassettes/FatZebra_Purchase/_capture/1_5_3.yml +0 -115
  139. data/spec/cassettes/FatZebra_Purchase/_create/1_1_1.yml +0 -53
  140. data/spec/cassettes/FatZebra_Purchase/_create/1_1_10.yml +0 -53
  141. data/spec/cassettes/FatZebra_Purchase/_create/1_1_11.yml +0 -53
  142. data/spec/cassettes/FatZebra_Purchase/_create/1_1_12.yml +0 -53
  143. data/spec/cassettes/FatZebra_Purchase/_create/1_1_13.yml +0 -53
  144. data/spec/cassettes/FatZebra_Purchase/_create/1_1_2.yml +0 -53
  145. data/spec/cassettes/FatZebra_Purchase/_create/1_1_3.yml +0 -53
  146. data/spec/cassettes/FatZebra_Purchase/_create/1_1_4.yml +0 -53
  147. data/spec/cassettes/FatZebra_Purchase/_create/1_1_5.yml +0 -53
  148. data/spec/cassettes/FatZebra_Purchase/_create/1_1_6.yml +0 -53
  149. data/spec/cassettes/FatZebra_Purchase/_create/1_1_7.yml +0 -53
  150. data/spec/cassettes/FatZebra_Purchase/_create/1_1_8.yml +0 -53
  151. data/spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml +0 -53
  152. data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml +0 -55
  153. data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml +0 -55
  154. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml +0 -109
  155. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml +0 -109
  156. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml +0 -109
  157. data/spec/cassettes/FatZebra_Purchase/_find/1_2_1.yml +0 -117
  158. data/spec/cassettes/FatZebra_Purchase/_find/1_2_2.yml +0 -117
  159. data/spec/cassettes/FatZebra_Purchase/_find/1_2_3.yml +0 -117
  160. data/spec/cassettes/FatZebra_Purchase/_find/1_2_4.yml +0 -117
  161. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml +0 -109
  162. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml +0 -109
  163. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml +0 -109
  164. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml +0 -109
  165. data/spec/cassettes/FatZebra_Purchase/_refund/1_4_1.yml +0 -115
  166. data/spec/cassettes/FatZebra_Purchase/_refund/1_4_2.yml +0 -115
  167. data/spec/cassettes/FatZebra_Purchase/_refund/1_4_3.yml +0 -115
  168. data/spec/cassettes/FatZebra_Purchase/_search/1_3_1.yml +0 -164
  169. data/spec/cassettes/FatZebra_Purchase/_search/1_3_2.yml +0 -164
  170. data/spec/cassettes/FatZebra_Purchase/_search/1_3_3.yml +0 -164
  171. data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_1.yml +0 -652
  172. data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_2.yml +0 -652
  173. data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_3.yml +0 -652
  174. data/spec/cassettes/FatZebra_Purchase/_void/1_6_1.yml +0 -103
  175. data/spec/cassettes/FatZebra_Purchase/_void/1_6_2.yml +0 -103
  176. data/spec/cassettes/FatZebra_Purchase/_void/1_6_3.yml +0 -103
  177. data/spec/cassettes/FatZebra_Purchase/_void/1_6_4.yml +0 -103
  178. data/spec/cassettes/FatZebra_Purchase/_void/1_7_1.yml +0 -103
  179. data/spec/cassettes/FatZebra_Purchase/_void/1_7_2.yml +0 -103
  180. data/spec/cassettes/FatZebra_Purchase/_void/1_7_3.yml +0 -103
  181. data/spec/cassettes/FatZebra_Purchase/_void/1_7_4.yml +0 -103
  182. data/spec/cassettes/FatZebra_Refund/_create/1_1_1.yml +0 -103
  183. data/spec/cassettes/FatZebra_Refund/_create/1_1_10.yml +0 -103
  184. data/spec/cassettes/FatZebra_Refund/_create/1_1_2.yml +0 -103
  185. data/spec/cassettes/FatZebra_Refund/_create/1_1_3.yml +0 -103
  186. data/spec/cassettes/FatZebra_Refund/_create/1_1_4.yml +0 -103
  187. data/spec/cassettes/FatZebra_Refund/_create/1_1_5.yml +0 -103
  188. data/spec/cassettes/FatZebra_Refund/_create/1_1_6.yml +0 -103
  189. data/spec/cassettes/FatZebra_Refund/_create/1_1_7.yml +0 -103
  190. data/spec/cassettes/FatZebra_Refund/_create/1_1_8.yml +0 -103
  191. data/spec/cassettes/FatZebra_Refund/_create/1_1_9.yml +0 -103
  192. data/spec/cassettes/FatZebra_Refund/_find/1_2_1.yml +0 -155
  193. data/spec/cassettes/FatZebra_Refund/_find/1_2_2.yml +0 -155
  194. data/spec/cassettes/FatZebra_Refund/_find/1_2_3.yml +0 -155
  195. data/spec/cassettes/FatZebra_Refund/_search/responds_with_the_newly-created_refunds.yml +0 -214
  196. data/spec/cassettes/FatZebra_Refund/_void/1_4_1.yml +0 -153
  197. data/spec/cassettes/FatZebra_Refund/_void/1_4_2.yml +0 -153
  198. data/spec/cassettes/FatZebra_Refund/_void/1_4_3.yml +0 -153
  199. data/spec/cassettes/FatZebra_Refund/_void/1_4_4.yml +0 -153
  200. data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_delete_/deletes_the_domain.yml +0 -52
  201. data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_find_/fetches_the_domain.yml +0 -86
  202. data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_list/fetches_the_merchant_domains.yml +0 -86
  203. data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_register_/creates_the_domain.yml +0 -84
  204. data/spec/cassettes/FatZebra_WebHook/_create/1_1_1.yml +0 -53
  205. data/spec/cassettes/FatZebra_WebHook/_create/1_1_2.yml +0 -53
  206. data/spec/cassettes/FatZebra_WebHook/_create/1_1_3.yml +0 -53
  207. data/spec/cassettes/FatZebra_WebHook/_delete/1_4_1.yml +0 -101
  208. data/spec/cassettes/FatZebra_WebHook/_search/1_2_1.yml +0 -298
  209. data/spec/cassettes/FatZebra_WebHook/_search/1_2_2.yml +0 -300
  210. data/spec/cassettes/FatZebra_WebHook/_update/1_3_1.yml +0 -104
  211. data/spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml +0 -104
  212. data/spec/fixtures/batch_test.csv +0 -4
  213. data/spec/lib/fat_zebra/api_resource_spec.rb +0 -25
  214. data/spec/lib/fat_zebra/authenticate_spec.rb +0 -187
  215. data/spec/lib/fat_zebra/bank_account_spec.rb +0 -34
  216. data/spec/lib/fat_zebra/batch_spec.rb +0 -59
  217. data/spec/lib/fat_zebra/card_spec.rb +0 -49
  218. data/spec/lib/fat_zebra/config_spec.rb +0 -69
  219. data/spec/lib/fat_zebra/customer_spec.rb +0 -53
  220. data/spec/lib/fat_zebra/direct_credit_spec.rb +0 -74
  221. data/spec/lib/fat_zebra/direct_debit_spec.rb +0 -74
  222. data/spec/lib/fat_zebra/fat_zebra_object_spec.rb +0 -117
  223. data/spec/lib/fat_zebra/information_spec.rb +0 -13
  224. data/spec/lib/fat_zebra/payment_plan_spec.rb +0 -117
  225. data/spec/lib/fat_zebra/paypal/authorization_spec.rb +0 -79
  226. data/spec/lib/fat_zebra/paypal/billing_agreement_spec.rb +0 -62
  227. data/spec/lib/fat_zebra/paypal/capture_spec.rb +0 -60
  228. data/spec/lib/fat_zebra/paypal/order_spec.rb +0 -35
  229. data/spec/lib/fat_zebra/paypal/refund_spec.rb +0 -36
  230. data/spec/lib/fat_zebra/purchase_spec.rb +0 -123
  231. data/spec/lib/fat_zebra/refund_spec.rb +0 -95
  232. data/spec/lib/fat_zebra/request_spec.rb +0 -59
  233. data/spec/lib/fat_zebra/util_spec.rb +0 -29
  234. data/spec/lib/fat_zebra/utilities/apple_pay/domain_spec.rb +0 -60
  235. data/spec/lib/fat_zebra/validation_spec.rb +0 -22
  236. data/spec/lib/fat_zebra/web_hook_spec.rb +0 -50
  237. data/spec/spec_helper.rb +0 -53
  238. data/spec/support/payloads.rb +0 -178
  239. data/vendor/cacert.pem +0 -3390
@@ -1,187 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Authenticate do
4
- describe '.session', :vcr do
5
- subject(:token) { FatZebra::Authenticate.session(valid_3ds_token_payload) }
6
-
7
- let(:valid_3ds_token_payload) {{
8
- currency: 'AUD',
9
- amount: 100
10
- }}
11
-
12
- it 'returns JWT with given params' do
13
- is_expected.to be_accepted
14
- expect(token.jwt).to be_truthy
15
- end
16
-
17
- it 'returns JWT with no amount' do
18
- valid_3ds_token_payload.delete(:amount)
19
- is_expected.to be_accepted
20
- expect(token.jwt).to be_truthy
21
- end
22
-
23
- it 'returns error when currency is invalid' do
24
- valid_3ds_token_payload[:currency] = 'INVALID'
25
- is_expected.not_to be_accepted
26
- expect(token.errors).to be_a(Array)
27
- expect(token.errors.join).to match(/INVALID is not valid for this merchant. Permitted currencies:/)
28
- end
29
-
30
- it 'returns error when amount is invalid' do
31
- valid_3ds_token_payload[:amount] = 'INVALID'
32
- is_expected.not_to be_accepted
33
- expect(token.errors).to eq(['Amount is invalid'])
34
- end
35
- end
36
-
37
- describe '.decode_session', :vcr do
38
- subject(:decoded) { FatZebra::Authenticate.decode_session(token: jwt) }
39
-
40
- context 'when token is valid' do
41
- let(:valid_3ds_token_payload) {{
42
- currency: 'AUD',
43
- amount: 100
44
- }}
45
- let(:jwt) { FatZebra::Authenticate.session(valid_3ds_token_payload).jwt }
46
-
47
- it 'decodes JWT' do
48
- is_expected.to be_accepted
49
- expect(decoded.keys).to include('processor_transaction_id', 'consumer_session_id', 'error_number', 'error_description')
50
- expect(decoded.errors).to be_empty
51
- end
52
- end
53
-
54
- context 'when token is invalid' do
55
- let(:jwt) { 'INVALID TOKEN' }
56
-
57
- it 'returns error when invalid token' do
58
- is_expected.not_to be_accepted
59
- expect(decoded.errors).to eq(['Decoding JWT failed: The token is invalid'])
60
- end
61
- end
62
- end
63
-
64
- describe '.authenticate', :vcr do
65
- subject(:authenticate) { FatZebra::Authenticate.authenticate(valid_sca_authentication_payload) }
66
- let!(:credit_card) { FatZebra::Card.create(valid_credit_card_payload) }
67
-
68
- context 'with invalid input' do
69
- before do
70
- valid_sca_authentication_payload[:sca].merge!(valid_sca_enrollment_payload)
71
- end
72
-
73
- it do
74
- valid_sca_authentication_payload[:card_token] = 'INVALID'
75
- is_expected.not_to be_accepted
76
- expect(authenticate.errors.join).to match(/Card not found/)
77
- end
78
-
79
- it do
80
- valid_sca_authentication_payload[:sca] = {}
81
- is_expected.not_to be_accepted
82
- expect(authenticate.errors.join).to match(/Invalid input data/)
83
- end
84
-
85
- it do
86
- valid_sca_authentication_payload[:currency] = 'INVALID'
87
- is_expected.not_to be_accepted
88
- expect(authenticate.errors.join).to match(/INVALID is not valid for this merchant. Permitted currencies:/)
89
- end
90
-
91
- it do
92
- valid_sca_authentication_payload[:amount] = 'INVALID'
93
- is_expected.not_to be_accepted
94
- expect(authenticate.errors.join).to match(/3DS authenticate request failed: amount must be filled/)
95
- end
96
- end
97
-
98
- context 'with frictionless response' do
99
- before do
100
- valid_credit_card_payload[:card_number] = '4000000000001000'
101
- valid_sca_authentication_payload[:sca].merge!(valid_sca_enrollment_payload)
102
- end
103
-
104
- it do
105
- is_expected.to be_accepted
106
- expect(authenticate.keys).to include('enrolled', 'acs_url', 'version', 'card_bin', 'authentication_transaction_id')
107
- expect(authenticate.errors).to be_empty
108
- end
109
-
110
- it do
111
- expect(authenticate.enrolled).to be_truthy
112
- expect(authenticate.version).to be_truthy
113
- expect(authenticate.card_bin).to be_truthy
114
- expect(authenticate.authentication_transaction_id).to be_truthy
115
- end
116
- end
117
-
118
- context 'with challenge response' do
119
- before do
120
- valid_credit_card_payload[:card_number] = '4000000000001091'
121
- valid_sca_authentication_payload[:sca].merge!(valid_sca_enrollment_payload)
122
- end
123
-
124
- it do
125
- is_expected.to be_accepted
126
- expect(authenticate.keys).to include('enrolled', 'version', 'card_bin', 'authentication_transaction_id')
127
- expect(authenticate.errors).to be_empty
128
- end
129
-
130
- it do
131
- expect(authenticate.enrolled).to be_truthy
132
- expect(authenticate.version).to be_truthy
133
- expect(authenticate.card_bin).to be_truthy
134
- expect(authenticate.authentication_transaction_id).to be_truthy
135
- end
136
- end
137
-
138
- context 'with type = validation' do
139
- subject(:authenticate) { FatZebra::Authenticate.authenticate(valid_sca_authentication_payload) }
140
-
141
- before do
142
- allow(FatZebra::Authenticate).to receive(:authenticate)
143
- .with(valid_sca_authentication_payload)
144
- .and_return(FatZebra::FatZebraObject.initialize_from(validation_response.to_json))
145
-
146
- valid_credit_card_payload[:card_number] = '4000000000001091'
147
- valid_sca_authentication_payload[:sca][:type] = 'validation'
148
- valid_sca_authentication_payload[:sca].merge!(valid_sca_validation_payload)
149
- end
150
-
151
- let(:validation_response) do
152
- {
153
- successful: true,
154
- response: {
155
- action: {
156
- proceed: true
157
- },
158
- version: '2.2.0',
159
- enrolled: 'Y',
160
- cavv: SecureRandom.hex,
161
- xid: SecureRandom.hex,
162
- pares: 'Y',
163
- eci: '05',
164
- authentication_transaction_id: SecureRandom.hex,
165
- card_bin: '400000',
166
- request_id: SecureRandom.hex,
167
- decision: 'ACCEPT'
168
- },
169
- errors: [],
170
- test: true
171
- }
172
- end
173
-
174
- it do
175
- is_expected.to be_accepted
176
- expect(authenticate.keys).to include('enrolled', 'version', 'card_bin', 'authentication_transaction_id', 'cavv', 'eci', 'xid', 'pares')
177
- expect(authenticate.errors).to be_empty
178
- end
179
- end
180
-
181
- context 'validations' do
182
- let(:valid_sca_authentication_payload) {{}}
183
-
184
- it { expect{ authenticate }.to raise_error(FatZebra::RequestValidationError) }
185
- end
186
- end
187
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::BankAccount do
4
-
5
- let(:valid_bank_account_payload) {{
6
- bsb: '123-123',
7
- account_name: 'Test name',
8
- account_number: '012345678'
9
- }}
10
-
11
- describe '.create', :vcr do
12
- subject(:bank_account) { FatZebra::BankAccount.create(valid_bank_account_payload) }
13
-
14
- it { is_expected.to be_accepted }
15
- it { expect(bank_account.id).to_not be_empty }
16
-
17
- context 'validations' do
18
- let(:valid_bank_account_payload) {{}}
19
-
20
- it { expect{ bank_account }.to raise_error(FatZebra::RequestValidationError) }
21
- end
22
- end
23
-
24
- describe '.search', :vcr do
25
- subject(:bank_accounts) { FatZebra::BankAccount.search }
26
-
27
- before { 2.times { |i| FatZebra::BankAccount.create(valid_bank_account_payload) } }
28
-
29
- it { is_expected.to be_accepted }
30
- it { expect(bank_accounts.data.count).to be >= 2 }
31
- it { expect(bank_accounts.data.first).to be_a(FatZebra::BankAccount) }
32
- end
33
-
34
- end
@@ -1,59 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Batch do
4
- let(:batch_path) { "#{File.dirname(__FILE__)}/../../fixtures/batch_test.csv" }
5
-
6
- let(:valid_batch_payload) {{
7
- file: File.new(batch_path),
8
- filename: "BATCH-v1-PURCHASE-TEST-#{Time.now.strftime('%Y%m%d')}-#{SecureRandom.hex}.csv"
9
- }}
10
-
11
- describe '.create', :vcr do
12
- subject(:batch) { FatZebra::Batch.create(valid_batch_payload) }
13
-
14
- context 'with file' do
15
- it { is_expected.to be_accepted }
16
- it { expect(batch.reference).to_not be_empty }
17
- end
18
-
19
- context 'with path' do
20
- let(:valid_batch_payload) {{
21
- path: batch_path,
22
- filename: "BATCH-v1-PURCHASE-TEST-#{Time.now.strftime('%Y%m%d')}-#{SecureRandom.hex}.csv"
23
- }}
24
-
25
- it { is_expected.to be_accepted }
26
- it { expect(batch.reference).to_not be_empty }
27
- end
28
-
29
- context 'validations' do
30
- let(:valid_batch_payload) {{}}
31
-
32
- it { expect{ batch }.to raise_error(FatZebra::RequestValidationError) }
33
- end
34
- end
35
-
36
- describe '.find', :vcr do
37
- let(:create) { FatZebra::Batch.create(valid_batch_payload) }
38
- subject(:batch) { FatZebra::Batch.find(create.reference) }
39
-
40
- it { is_expected.to be_accepted }
41
- it { expect(batch.reference).to eq(create.reference) }
42
- end
43
-
44
- describe '.search', :vcr do
45
- subject(:batches) { FatZebra::Batch.search }
46
-
47
- it { is_expected.to be_accepted }
48
- it { expect(batches.data.count).to be >= 2 }
49
- it { expect(batches.data.first).to be_a(FatZebra::Batch) }
50
- end
51
-
52
- describe '#result', :vcr do
53
- let(:create) { FatZebra::Batch.create(valid_batch_payload) }
54
- let(:batch) { FatZebra::Batch.find(create.reference) }
55
-
56
- it { expect(batch.result).to eq("Batch is not yet completed") }
57
- end
58
-
59
- end
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Card do
4
-
5
- describe '.create', :vcr do
6
- subject(:credit_card) { FatZebra::Card.create(valid_credit_card_payload) }
7
-
8
- it { is_expected.to be_accepted }
9
- it { expect(credit_card.token).to_not be_empty }
10
- it { expect(credit_card.card_holder).to eq('Matthew Savage') }
11
- it { expect(credit_card.card_number).to_not be_empty }
12
- it { expect(credit_card.card_type).to eq('MasterCard') }
13
- it { expect(credit_card.authorized?).to be_truthy }
14
-
15
- context 'validations' do
16
- let(:valid_credit_card_payload) {{}}
17
-
18
- it { expect{ credit_card }.to raise_error(FatZebra::RequestValidationError) }
19
- end
20
- end
21
-
22
- describe '.update', :vcr do
23
- let(:valid_credit_card_update_payload) {{
24
- card_expiry: DateTime.new(2050, 2, 3).strftime('%m/%Y'),
25
- }}
26
-
27
- let(:create) { FatZebra::Card.create(valid_credit_card_payload) }
28
- subject(:credit_card) { FatZebra::Card.update(create.token, valid_credit_card_update_payload) }
29
-
30
- it { is_expected.to be_accepted }
31
- it { expect(credit_card.token).to eq(create.token) }
32
- it { expect(credit_card.card_expiry).to_not eq(create.card_expiry) }
33
-
34
- context 'validations' do
35
- let(:valid_credit_card_update_payload) {{}}
36
-
37
- it { expect{ credit_card }.to raise_error(FatZebra::RequestValidationError) }
38
- end
39
- end
40
-
41
- describe '.find', :vcr do
42
- let(:create) { FatZebra::Card.create(valid_credit_card_payload) }
43
- subject(:card) { FatZebra::Card.find(create.token) }
44
-
45
- it { is_expected.to be_accepted }
46
- it { expect(card.token).to eq(create.token) }
47
- end
48
-
49
- end
@@ -1,69 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Config do
4
- let(:params) {{
5
- token: 'my-token',
6
- username: 'my-username'
7
- }}
8
-
9
- subject(:config) { FatZebra::Config.new(params) }
10
-
11
- describe '#initialize' do
12
- it { expect(config.valid!).to be_truthy }
13
- it { expect(config.token).to eq(params[:token]) }
14
- it { expect(config.username).to eq(params[:username]) }
15
- it { expect(config.gateway).to eq('gateway.fatzebra.com.au') }
16
- it { expect(config.test_mode).to be_falsey }
17
- it { expect(config.http_secure).to be_truthy }
18
- it { expect(config.api_version).to eq('v1.0') }
19
-
20
- context 'with all params' do
21
- let(:params) {{
22
- token: 'my-token',
23
- username: 'my-username',
24
- gateway: 'my-gateway',
25
- test_mode: 'my-test_mode',
26
- http_secure: 'my-http_secure',
27
- api_version: 'my-api_version',
28
- proxy: 'my-proxy'
29
- }}
30
-
31
- it { expect(config.valid!).to be_truthy }
32
- it { expect(config.gateway).to eq(params[:gateway]) }
33
- it { expect(config.test_mode).to eq(params[:test_mode]) }
34
- it { expect(config.http_secure).to eq(params[:http_secure]) }
35
- it { expect(config.api_version).to eq(params[:api_version]) }
36
- it { expect(config.proxy).to eq(params[:proxy]) }
37
- end
38
-
39
- %i[username token].each do |field|
40
- context "validate #{field}" do
41
- let(:params) {{ token: 'my-token', username: 'my-username' }.merge(field => '')}
42
-
43
- it { expect { config.valid! }.to raise_error(FatZebra::ConfigurationError, "#{field} can't be blank") }
44
- end
45
- end
46
-
47
- context 'with gateway' do
48
- before { expect(config.valid!).to be_truthy }
49
-
50
- context 'with production' do
51
- subject(:config) { FatZebra::Config.new(params.merge(gateway: :production)) }
52
-
53
- it { expect(config.gateway).to eq('gateway.fatzebra.com.au') }
54
- end
55
- end
56
-
57
- context 'remove http' do
58
- let(:params) {{
59
- token: 'my-token',
60
- username: 'my-username',
61
- gateway: 'http://my-gateway',
62
- proxy: 'https://my-proxy'
63
- }}
64
-
65
- it { expect(config.gateway).to eq('my-gateway') }
66
- end
67
-
68
- end
69
- end
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Customer do
4
-
5
- describe '.create', :vcr do
6
- subject(:customer) { FatZebra::Customer.create(customer_valid_payload) }
7
-
8
- it { is_expected.to be_accepted }
9
- it { expect(customer.id).to_not be_empty }
10
- it { expect(customer.first_name).to eq(customer_valid_payload[:first_name]) }
11
- it { expect(customer.last_name).to eq(customer_valid_payload[:last_name]) }
12
- it { expect(customer.card_token).to_not be_empty }
13
- it { expect(customer.bank_account).to be_nil }
14
-
15
- context 'validations' do
16
- let(:customer_valid_payload) {{}}
17
-
18
- it { expect{ customer }.to raise_error(FatZebra::RequestValidationError) }
19
- end
20
- end
21
-
22
- describe '.search', :vcr do
23
- subject(:purchases) { FatZebra::Customer.search }
24
-
25
- it { is_expected.to be_accepted }
26
- it { expect(purchases.data.count).to be >= 2 }
27
- it { expect(purchases.data.first).to be_a(FatZebra::Customer) }
28
- end
29
-
30
- describe '.find', :vcr do
31
- let!(:create) { FatZebra::Customer.create(customer_valid_payload) }
32
- subject(:customer) { FatZebra::Customer.find(create.reference) }
33
-
34
- it { is_expected.to be_accepted }
35
- it { expect(customer.reference).to eq(create.reference) }
36
- end
37
-
38
- describe '.update', :vcr do
39
- let(:create) { FatZebra::Customer.create(customer_valid_payload) }
40
- subject(:customer) { FatZebra::Customer.update(create.id, first_name: 'New Name') }
41
-
42
- it { is_expected.to be_accepted }
43
- it { expect(customer.first_name).to eq('New Name') }
44
- end
45
-
46
- describe '.delete', :vcr do
47
- let(:create) { FatZebra::Customer.create(customer_valid_payload) }
48
- subject(:customer) { FatZebra::Customer.delete(create.id) }
49
-
50
- it { is_expected.to be_accepted }
51
- end
52
-
53
- end
@@ -1,74 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::DirectCredit do
4
-
5
- let(:valid_direct_credit_payload) {{
6
- description: 'Confirmation',
7
- amount: 42.0,
8
- bsb: '123-123',
9
- account_name: 'Test',
10
- account_number: '012345678'
11
- }}
12
-
13
- describe '.create', :vcr do
14
- subject(:direct_credit) { FatZebra::DirectCredit.create(valid_direct_credit_payload) }
15
-
16
- it { is_expected.to be_accepted }
17
- it { expect(direct_credit.bsb).to eq(valid_direct_credit_payload[:bsb]) }
18
- it { expect(direct_credit.reference).to_not be_empty }
19
- it { expect(direct_credit.id).to_not be_empty }
20
-
21
- context 'validations' do
22
- context 'valid' do
23
- before { valid_direct_credit_payload[:amount] = 42.42 }
24
-
25
- it { is_expected.to be_accepted }
26
- end
27
-
28
- context 'failed' do
29
- let(:valid_direct_credit_payload) {{}}
30
-
31
- it { expect{ direct_credit }.to raise_error(FatZebra::RequestValidationError) }
32
- end
33
-
34
- context 'failed with non-float' do
35
- let(:valid_direct_credit_payload) {{
36
- description: 'Confirmation',
37
- amount: 123,
38
- bsb: '123-123',
39
- account_name: 'Test',
40
- account_number: '012345678'
41
- }}
42
-
43
- it { expect{ direct_credit }.to raise_error(FatZebra::RequestValidationError) }
44
- end
45
- end
46
- end
47
-
48
- describe '.find', :vcr do
49
- let!(:create) { FatZebra::DirectCredit.create(valid_direct_credit_payload) }
50
- subject(:direct_credit) { FatZebra::DirectCredit.find(create.reference) }
51
-
52
- it { is_expected.to be_accepted }
53
- it { expect(direct_credit.reference).to eq(create.reference) }
54
- it { expect(direct_credit.amount).to be_instance_of(Float) }
55
- end
56
-
57
- describe '.search', :vcr do
58
- let!(:start) { Time.now }
59
- subject(:direct_credits) { FatZebra::DirectCredit.search }
60
-
61
- before { 2.times { |i| FatZebra::DirectCredit.create(valid_direct_credit_payload) } }
62
-
63
- it { is_expected.to be_accepted }
64
- it { expect(direct_credits.data.count).to be >= 2 }
65
- end
66
-
67
- describe '.delete', :vcr do
68
- let(:create) { FatZebra::DirectCredit.create(valid_direct_credit_payload) }
69
- subject(:direct_credit) { FatZebra::DirectCredit.delete(create.id) }
70
-
71
- it { is_expected.to be_accepted }
72
- end
73
-
74
- end
@@ -1,74 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::DirectDebit do
4
-
5
- let(:valid_direct_debit_payload) {{
6
- description: 'Confirmation',
7
- amount: 42.0,
8
- bsb: '123-123',
9
- account_name: 'Test',
10
- account_number: '012345678'
11
- }}
12
-
13
- describe '.create', :vcr do
14
- subject(:direct_debit) { FatZebra::DirectDebit.create(valid_direct_debit_payload) }
15
-
16
- it { is_expected.to be_accepted }
17
- it { expect(direct_debit.bsb).to eq(valid_direct_debit_payload[:bsb]) }
18
- it { expect(direct_debit.reference).to_not be_empty }
19
- it { expect(direct_debit.id).to_not be_empty }
20
-
21
- context 'validations' do
22
- context 'valid' do
23
- before { valid_direct_debit_payload[:amount] = 42.42 }
24
-
25
- it { is_expected.to be_accepted }
26
- end
27
-
28
- context 'failed' do
29
- let(:valid_direct_debit_payload) {{}}
30
-
31
- it { expect{ direct_debit }.to raise_error(FatZebra::RequestValidationError) }
32
- end
33
-
34
- context 'failed with non-float' do
35
- let(:valid_direct_debit_payload) {{
36
- description: 'Confirmation',
37
- amount: 123,
38
- bsb: '123-123',
39
- account_name: 'Test',
40
- account_number: '012345678'
41
- }}
42
-
43
- it { expect{ direct_debit }.to raise_error(FatZebra::RequestValidationError) }
44
- end
45
- end
46
- end
47
-
48
- describe '.find', :vcr do
49
- let!(:create) { FatZebra::DirectDebit.create(valid_direct_debit_payload) }
50
- subject(:direct_debit) { FatZebra::DirectDebit.find(create.reference) }
51
-
52
- it { is_expected.to be_accepted }
53
- it { expect(direct_debit.reference).to eq(create.reference) }
54
- it { expect(direct_debit.amount).to be_instance_of(Float) }
55
- end
56
-
57
- describe '.search', :vcr do
58
- let!(:start) { Time.now }
59
- subject(:direct_debits) { FatZebra::DirectDebit.search }
60
-
61
- before { 2.times { |i| FatZebra::DirectDebit.create(valid_direct_debit_payload) } }
62
-
63
- it { is_expected.to be_accepted }
64
- it { expect(direct_debits.data.count).to be >= 2 }
65
- end
66
-
67
- describe '.delete', :vcr do
68
- let(:create) { FatZebra::DirectDebit.create(valid_direct_debit_payload) }
69
- subject(:direct_debit) { FatZebra::DirectDebit.delete(create.id) }
70
-
71
- it { is_expected.to be_accepted }
72
- end
73
-
74
- end