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.
- checksums.yaml +4 -4
- data/README.md +2 -9
- data/fat_zebra.gemspec +9 -9
- data/lib/fat_zebra/api_resource.rb +0 -1
- data/lib/fat_zebra/object_helper.rb +2 -2
- data/lib/fat_zebra/request.rb +5 -9
- data/lib/fat_zebra/util.rb +3 -3
- data/lib/fat_zebra/utilities/apple_pay/domain.rb +23 -8
- data/lib/fat_zebra/validation.rb +1 -1
- data/lib/fat_zebra/version.rb +1 -2
- data/lib/fat_zebra.rb +0 -1
- metadata +20 -246
- data/.buildkite/pipeline.yml +0 -34
- data/.gitignore +0 -8
- data/.rspec +0 -0
- data/.rubocop.yml +0 -42
- data/.tool-versions +0 -1
- data/.travis.yml +0 -8
- data/Gemfile +0 -6
- data/Rakefile +0 -10
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/validations/1_3_5_1.yml +0 -46
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_1.yml +0 -90
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_2.yml +0 -90
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_1.yml +0 -90
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_2.yml +0 -90
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_1.yml +0 -90
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_2.yml +0 -87
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_3.yml +0 -92
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_4.yml +0 -91
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_type_validation/1_3_4_1.yml +0 -46
- data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_invalid/returns_error_when_invalid_token.yml +0 -47
- data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_valid/decodes_JWT.yml +0 -87
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_given_params.yml +0 -44
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_no_amount.yml +0 -44
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_amount_is_invalid.yml +0 -44
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_currency_is_invalid.yml +0 -46
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml +0 -53
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml +0 -53
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml +0 -164
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_2.yml +0 -164
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_3.yml +0 -164
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_1.yml +0 -61
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_2.yml +0 -61
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_1.yml +0 -61
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_2.yml +0 -61
- data/spec/cassettes/FatZebra_Batch/_find/1_2_1.yml +0 -112
- data/spec/cassettes/FatZebra_Batch/_find/1_2_2.yml +0 -112
- data/spec/cassettes/FatZebra_Batch/_result/1_4_1.yml +0 -163
- data/spec/cassettes/FatZebra_Batch/_search/1_3_1.yml +0 -54
- data/spec/cassettes/FatZebra_Batch/_search/1_3_2.yml +0 -54
- data/spec/cassettes/FatZebra_Batch/_search/1_3_3.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_1.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_2.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_3.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_4.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_5.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_create/1_1_6.yml +0 -54
- data/spec/cassettes/FatZebra_Card/_find/1_3_1.yml +0 -111
- data/spec/cassettes/FatZebra_Card/_find/1_3_2.yml +0 -111
- data/spec/cassettes/FatZebra_Card/_update/1_2_1.yml +0 -105
- data/spec/cassettes/FatZebra_Card/_update/1_2_2.yml +0 -105
- data/spec/cassettes/FatZebra_Card/_update/1_2_3.yml +0 -105
- data/spec/cassettes/FatZebra_Card/_update/validations/1_2_4_1.yml +0 -54
- data/spec/cassettes/FatZebra_Customer/_create/1_1_1.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_create/1_1_2.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_create/1_1_3.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_create/1_1_4.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_create/1_1_5.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_create/1_1_6.yml +0 -55
- data/spec/cassettes/FatZebra_Customer/_delete/1_5_1.yml +0 -103
- data/spec/cassettes/FatZebra_Customer/_find/1_3_1.yml +0 -107
- data/spec/cassettes/FatZebra_Customer/_find/1_3_2.yml +0 -107
- data/spec/cassettes/FatZebra_Customer/_search/1_2_1.yml +0 -60
- data/spec/cassettes/FatZebra_Customer/_search/1_2_2.yml +0 -60
- data/spec/cassettes/FatZebra_Customer/_search/1_2_3.yml +0 -60
- data/spec/cassettes/FatZebra_Customer/_update/1_4_1.yml +0 -106
- data/spec/cassettes/FatZebra_Customer/_update/1_4_2.yml +0 -106
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_1.yml +0 -52
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_2.yml +0 -52
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_3.yml +0 -52
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_4.yml +0 -52
- data/spec/cassettes/FatZebra_DirectCredit/_create/validations/valid/1_1_5_1_1.yml +0 -52
- data/spec/cassettes/FatZebra_DirectCredit/_delete/1_4_1.yml +0 -99
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_1.yml +0 -103
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_2.yml +0 -103
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_3.yml +0 -103
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_1.yml +0 -152
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_2.yml +0 -152
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_1.yml +0 -52
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml +0 -52
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml +0 -52
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml +0 -52
- data/spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml +0 -52
- data/spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml +0 -99
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml +0 -103
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_2.yml +0 -103
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_3.yml +0 -103
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_1.yml +0 -152
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_2.yml +0 -152
- data/spec/cassettes/FatZebra_Information/_ping/1_1_1.yml +0 -54
- data/spec/cassettes/FatZebra_Information/_ping/1_1_2.yml +0 -54
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_1.yml +0 -222
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_2.yml +0 -222
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml +0 -110
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml +0 -110
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml +0 -110
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_1.yml +0 -183
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_2.yml +0 -183
- data/spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_3.yml +0 -183
- data/spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml +0 -158
- data/spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml +0 -158
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml +0 -167
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_2.yml +0 -167
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_3.yml +0 -167
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_1.yml +0 -166
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_2.yml +0 -166
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_1.yml +0 -160
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_2.yml +0 -160
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_3.yml +0 -160
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_1.yml +0 -166
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_2.yml +0 -166
- data/spec/cassettes/FatZebra_Paypal_Authorization/_capture/returns_a_new_capture_record.yml +0 -45
- data/spec/cassettes/FatZebra_Paypal_Authorization/_find/when_found/returns_authorization.yml +0 -46
- data/spec/cassettes/FatZebra_Paypal_Authorization/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -46
- data/spec/cassettes/FatZebra_Paypal_Authorization/_void/returns_a_voided_capture_record.yml +0 -44
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_charge/Valid_payload/returns_a_new_order_record.yml +0 -48
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_find/when_found/returns_billing_agreement.yml +0 -48
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -48
- data/spec/cassettes/FatZebra_Paypal_Capture/_find/when_found/returns_capture.yml +0 -47
- data/spec/cassettes/FatZebra_Paypal_Capture/_refund/returns_a_new_refund_record.yml +0 -45
- data/spec/cassettes/FatZebra_Paypal_Capture/_search/with_date_filter/returns_records_created_after_start_date.yml +0 -49
- data/spec/cassettes/FatZebra_Paypal_Order/_find/when_found/returns_order.yml +0 -48
- data/spec/cassettes/FatZebra_Paypal_Order/_search/with_date_filter/returns_orders_created_after_start_date.yml +0 -55
- data/spec/cassettes/FatZebra_Paypal_Refund/_find/when_found/returns_refund.yml +0 -47
- data/spec/cassettes/FatZebra_Paypal_Refund/_search/with_date_filter/returns_all_refund_records_created_after_start_date.yml +0 -50
- data/spec/cassettes/FatZebra_Purchase/_capture/1_5_1.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_capture/1_5_2.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_capture/1_5_3.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_1.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_10.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_11.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_12.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_13.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_2.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_3.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_4.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_5.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_6.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_7.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_8.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml +0 -53
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml +0 -55
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml +0 -55
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_find/1_2_1.yml +0 -117
- data/spec/cassettes/FatZebra_Purchase/_find/1_2_2.yml +0 -117
- data/spec/cassettes/FatZebra_Purchase/_find/1_2_3.yml +0 -117
- data/spec/cassettes/FatZebra_Purchase/_find/1_2_4.yml +0 -117
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml +0 -109
- data/spec/cassettes/FatZebra_Purchase/_refund/1_4_1.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_refund/1_4_2.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_refund/1_4_3.yml +0 -115
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_1.yml +0 -164
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_2.yml +0 -164
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_3.yml +0 -164
- data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_1.yml +0 -652
- data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_2.yml +0 -652
- data/spec/cassettes/FatZebra_Purchase/_settlement/1_8_3.yml +0 -652
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_1.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_2.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_3.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_4.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_1.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_2.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_3.yml +0 -103
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_4.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_1.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_10.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_2.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_3.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_4.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_5.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_6.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_7.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_8.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_create/1_1_9.yml +0 -103
- data/spec/cassettes/FatZebra_Refund/_find/1_2_1.yml +0 -155
- data/spec/cassettes/FatZebra_Refund/_find/1_2_2.yml +0 -155
- data/spec/cassettes/FatZebra_Refund/_find/1_2_3.yml +0 -155
- data/spec/cassettes/FatZebra_Refund/_search/responds_with_the_newly-created_refunds.yml +0 -214
- data/spec/cassettes/FatZebra_Refund/_void/1_4_1.yml +0 -153
- data/spec/cassettes/FatZebra_Refund/_void/1_4_2.yml +0 -153
- data/spec/cassettes/FatZebra_Refund/_void/1_4_3.yml +0 -153
- data/spec/cassettes/FatZebra_Refund/_void/1_4_4.yml +0 -153
- data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_delete_/deletes_the_domain.yml +0 -52
- data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_find_/fetches_the_domain.yml +0 -86
- data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_list/fetches_the_merchant_domains.yml +0 -86
- data/spec/cassettes/FatZebra_Utilities_ApplePay_Domain/_register_/creates_the_domain.yml +0 -84
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_1.yml +0 -53
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_2.yml +0 -53
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_3.yml +0 -53
- data/spec/cassettes/FatZebra_WebHook/_delete/1_4_1.yml +0 -101
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_1.yml +0 -298
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_2.yml +0 -300
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_1.yml +0 -104
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml +0 -104
- data/spec/fixtures/batch_test.csv +0 -4
- data/spec/lib/fat_zebra/api_resource_spec.rb +0 -25
- data/spec/lib/fat_zebra/authenticate_spec.rb +0 -187
- data/spec/lib/fat_zebra/bank_account_spec.rb +0 -34
- data/spec/lib/fat_zebra/batch_spec.rb +0 -59
- data/spec/lib/fat_zebra/card_spec.rb +0 -49
- data/spec/lib/fat_zebra/config_spec.rb +0 -69
- data/spec/lib/fat_zebra/customer_spec.rb +0 -53
- data/spec/lib/fat_zebra/direct_credit_spec.rb +0 -74
- data/spec/lib/fat_zebra/direct_debit_spec.rb +0 -74
- data/spec/lib/fat_zebra/fat_zebra_object_spec.rb +0 -117
- data/spec/lib/fat_zebra/information_spec.rb +0 -13
- data/spec/lib/fat_zebra/payment_plan_spec.rb +0 -117
- data/spec/lib/fat_zebra/paypal/authorization_spec.rb +0 -79
- data/spec/lib/fat_zebra/paypal/billing_agreement_spec.rb +0 -62
- data/spec/lib/fat_zebra/paypal/capture_spec.rb +0 -60
- data/spec/lib/fat_zebra/paypal/order_spec.rb +0 -35
- data/spec/lib/fat_zebra/paypal/refund_spec.rb +0 -36
- data/spec/lib/fat_zebra/purchase_spec.rb +0 -123
- data/spec/lib/fat_zebra/refund_spec.rb +0 -95
- data/spec/lib/fat_zebra/request_spec.rb +0 -59
- data/spec/lib/fat_zebra/util_spec.rb +0 -29
- data/spec/lib/fat_zebra/utilities/apple_pay/domain_spec.rb +0 -60
- data/spec/lib/fat_zebra/validation_spec.rb +0 -22
- data/spec/lib/fat_zebra/web_hook_spec.rb +0 -50
- data/spec/spec_helper.rb +0 -53
- data/spec/support/payloads.rb +0 -178
- data/vendor/cacert.pem +0 -3390
@@ -1,95 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::Refund do
|
4
|
-
let(:valid_refund_payload) {{
|
5
|
-
transaction_id: transaction_id,
|
6
|
-
amount: 10000,
|
7
|
-
reference: reference
|
8
|
-
}}
|
9
|
-
|
10
|
-
describe '.create', :vcr do
|
11
|
-
subject(:refund) { FatZebra::Refund.create(valid_refund_payload) }
|
12
|
-
|
13
|
-
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
14
|
-
let(:transaction_id) { purchase.transaction_id }
|
15
|
-
let(:reference) { purchase.reference }
|
16
|
-
|
17
|
-
it { is_expected.to be_accepted }
|
18
|
-
it { is_expected.to be_successful }
|
19
|
-
it { expect(refund.authorization.to_s).to_not be_empty }
|
20
|
-
it { expect(refund.id).to_not be_empty }
|
21
|
-
it { expect(refund.card_holder).to eq('Matthew Savage') }
|
22
|
-
it { expect(refund.transaction_id).to_not eq(transaction_id) }
|
23
|
-
it { expect(refund.reference).to eq(reference) }
|
24
|
-
it { expect(refund.currency).to eq('AUD') }
|
25
|
-
it { expect(refund.response_code).to eq('00') }
|
26
|
-
it { expect(refund.metadata).to eq({}) }
|
27
|
-
|
28
|
-
context 'validations' do
|
29
|
-
let(:valid_refund_payload) {{}}
|
30
|
-
|
31
|
-
it { expect{ refund }.to raise_error(FatZebra::RequestValidationError) }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe '.find', :vcr do
|
36
|
-
subject(:found_refund) { FatZebra::Refund.find(created_refund.reference) }
|
37
|
-
|
38
|
-
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
39
|
-
let(:transaction_id) { purchase.transaction_id }
|
40
|
-
let(:reference) { purchase.reference }
|
41
|
-
let(:created_refund) { FatZebra::Refund.create(valid_refund_payload) }
|
42
|
-
|
43
|
-
it { is_expected.to be_accepted }
|
44
|
-
it { is_expected.to be_successful }
|
45
|
-
it { expect(found_refund.reference).to eq(created_refund.reference) }
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '.search', :vcr do
|
49
|
-
subject(:found_refunds) { FatZebra::Refund.search }
|
50
|
-
|
51
|
-
let(:created_refunds) do
|
52
|
-
purchase = FatZebra::Purchase.create(valid_purchase_payload)
|
53
|
-
[
|
54
|
-
FatZebra::Refund.create(amount: 1000, reference: SecureRandom.hex, transaction_id: purchase.transaction_id),
|
55
|
-
FatZebra::Refund.create(amount: 1000, reference: SecureRandom.hex, transaction_id: purchase.transaction_id),
|
56
|
-
]
|
57
|
-
end
|
58
|
-
|
59
|
-
before { created_refunds }
|
60
|
-
|
61
|
-
it "responds with the newly-created refunds" do
|
62
|
-
is_expected.to be_accepted
|
63
|
-
expect(found_refunds.data.map(&:id)).to include(*created_refunds.map(&:id))
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe '#void', :vcr do
|
68
|
-
subject(:refund) { FatZebra::Refund.create(valid_refund_payload).void }
|
69
|
-
|
70
|
-
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
71
|
-
let(:transaction_id) { purchase.transaction_id }
|
72
|
-
let(:reference) { purchase.reference }
|
73
|
-
|
74
|
-
it { is_expected.to be_accepted }
|
75
|
-
it { is_expected.to be_successful }
|
76
|
-
it { expect(refund.message).to eq('Voided') }
|
77
|
-
it { expect(refund).to be_a(FatZebra::Refund) }
|
78
|
-
end
|
79
|
-
|
80
|
-
describe '#declined?' do
|
81
|
-
subject { refund.declined? }
|
82
|
-
|
83
|
-
let(:refund) { described_class.initialize_from({ 'response' => { 'refunded' => refunded } }) }
|
84
|
-
|
85
|
-
context do
|
86
|
-
let(:refunded) { 'Declined' }
|
87
|
-
it { is_expected.to be(true) }
|
88
|
-
end
|
89
|
-
|
90
|
-
context do
|
91
|
-
let(:refunded) { 'Approved' }
|
92
|
-
it { is_expected.to be(false) }
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::Request do
|
4
|
-
describe '#initalize' do
|
5
|
-
subject do
|
6
|
-
FatZebra::Request
|
7
|
-
.new(params)
|
8
|
-
.http
|
9
|
-
end
|
10
|
-
let(:params) do
|
11
|
-
{
|
12
|
-
url: 'https://cool.dudes/v2/swagtopia.json',
|
13
|
-
}.merge!(proxy_params)
|
14
|
-
end
|
15
|
-
let(:formatted_proxy) { [host, port].join(':') }
|
16
|
-
let(:formatted_host) { URI.parse(host).host }
|
17
|
-
let(:host) { "http://squidward.net" }
|
18
|
-
let(:port) { 6969 }
|
19
|
-
|
20
|
-
context 'with default params' do
|
21
|
-
let(:proxy_params) {{}}
|
22
|
-
|
23
|
-
it 'does not use a proxy configuration' do
|
24
|
-
expect(subject.proxy?).to eq(false)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
context 'with env var specifying http proxy' do
|
29
|
-
let(:proxy_params) {{}}
|
30
|
-
before do
|
31
|
-
allow(ENV).to receive(:[]).with("NO_PROXY").and_return(nil)
|
32
|
-
allow(ENV).to receive(:[]).with("no_proxy").and_return(nil)
|
33
|
-
allow(ENV).to receive(:[]).with("http_proxy").and_return(formatted_proxy)
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'draws the proxy configuration from the environment var' do
|
37
|
-
expect(subject.proxy?).to eq(true)
|
38
|
-
expect(subject.proxy_from_env?).to eq(true)
|
39
|
-
expect(subject.proxy_address).to eq(formatted_host)
|
40
|
-
expect(subject.proxy_port).to eq(port)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context 'with custom http_proxy params to the constructor passed via initializer or similar' do
|
45
|
-
let(:proxy_params) do
|
46
|
-
{
|
47
|
-
proxy: formatted_proxy
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'draws the proxy host and port configuration from the environment var' do
|
52
|
-
expect(subject.proxy?).to eq(true)
|
53
|
-
expect(subject.proxy_from_env?).to eq(false)
|
54
|
-
expect(subject.proxy_address).to eq(formatted_host)
|
55
|
-
expect(subject.proxy_port).to eq(port)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::Util do
|
4
|
-
|
5
|
-
describe '#compact' do
|
6
|
-
it { expect(FatZebra::Util.compact(test: nil, other: 'test')).to eq(other: 'test') }
|
7
|
-
end
|
8
|
-
|
9
|
-
describe '#encode_parameters' do
|
10
|
-
it { expect(FatZebra::Util.encode_parameters(id: 42, other: 'test')).to eq("id=42&other=test") }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe '#camelize' do
|
14
|
-
it { expect(FatZebra::Util.camelize('model')).to eq("Model") }
|
15
|
-
it { expect(FatZebra::Util.camelize('my_model')).to eq("MyModel") }
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#underscore' do
|
19
|
-
it { expect(FatZebra::Util.underscore('Model')).to eq("model") }
|
20
|
-
it { expect(FatZebra::Util.underscore('MyModel')).to eq("my_model") }
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '#format_dates_in_hash' do
|
24
|
-
let (:date) { DateTime.new(2050, 2, 3) }
|
25
|
-
|
26
|
-
it { expect(FatZebra::Util.format_dates_in_hash(date: date)).to eq(date: '2050/02/03') }
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::Utilities::ApplePay::Domain do
|
4
|
-
|
5
|
-
describe '.list', :vcr do
|
6
|
-
subject(:list) { FatZebra::Utilities::ApplePay::Domain.list }
|
7
|
-
|
8
|
-
it "fetches the merchant domains" do
|
9
|
-
expect(list).to be_accepted
|
10
|
-
expect(list.data.length).to eq(2)
|
11
|
-
expect(list.data.first.raw).to eq(
|
12
|
-
{
|
13
|
-
"domain" => "example.com",
|
14
|
-
"status" => "Active"
|
15
|
-
}
|
16
|
-
)
|
17
|
-
expect(list.data.last.raw).to eq(
|
18
|
-
{
|
19
|
-
"domain" => "example2.com",
|
20
|
-
"status" => "Active"
|
21
|
-
}
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '.register!', :vcr do
|
27
|
-
subject(:create) { FatZebra::Utilities::ApplePay::Domain.register!(domain, valid_payload) }
|
28
|
-
|
29
|
-
let!(:domain) { "www.example99.com" }
|
30
|
-
let!(:valid_payload) {{
|
31
|
-
async: false
|
32
|
-
}}
|
33
|
-
|
34
|
-
it "creates the domain" do
|
35
|
-
expect(create).to be_accepted
|
36
|
-
expect(create.domain).to eq(domain)
|
37
|
-
expect(create.status).to eq("Active")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe '.find!', :vcr do
|
42
|
-
subject(:find) { FatZebra::Utilities::ApplePay::Domain.find!(domain) }
|
43
|
-
let!(:domain) { "www.example.com" }
|
44
|
-
|
45
|
-
it "fetches the domain" do
|
46
|
-
expect(find).to be_accepted
|
47
|
-
expect(find.domain).to eq(domain)
|
48
|
-
expect(find.status).to eq("Active")
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe '.delete!', :vcr do
|
53
|
-
subject(:delete) { FatZebra::Utilities::ApplePay::Domain.delete!(domain) }
|
54
|
-
let!(:domain) { "www.example99.com" }
|
55
|
-
|
56
|
-
it "deletes the domain" do
|
57
|
-
expect(delete).to be_accepted
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::Validation do
|
4
|
-
let(:klass) { Class.new }
|
5
|
-
|
6
|
-
before { klass.send(:extend, FatZebra::Validation) }
|
7
|
-
|
8
|
-
describe '#valid?' do
|
9
|
-
before { klass.validates(:test, required: true, on: :create) }
|
10
|
-
|
11
|
-
it { expect(klass.valid?({}, :create)).to be_falsey }
|
12
|
-
it { expect(klass.valid?({ test: 'valid' }, :create)).to be_truthy }
|
13
|
-
it { expect(klass.valid?({}, :update)).to be_truthy }
|
14
|
-
end
|
15
|
-
|
16
|
-
describe '#valid!' do
|
17
|
-
before { klass.validates(:test, required: true, on: :create) }
|
18
|
-
|
19
|
-
it { expect { klass.valid!({}, :create) }.to raise_error(FatZebra::RequestValidationError) }
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe FatZebra::WebHook do
|
4
|
-
|
5
|
-
let(:valid_web_hook_payload) {{
|
6
|
-
events: '*',
|
7
|
-
mode: 'Test',
|
8
|
-
name: 'test hook',
|
9
|
-
address: 'http://stage.example.com.au/v1/api/hook_listener'
|
10
|
-
}}
|
11
|
-
|
12
|
-
describe '.create', :vcr do
|
13
|
-
subject(:web_hook) { FatZebra::WebHook.create(valid_web_hook_payload) }
|
14
|
-
|
15
|
-
it { is_expected.to be_accepted }
|
16
|
-
it { expect(web_hook.name).to eq('test hook') }
|
17
|
-
it { expect(web_hook.id).to_not be_empty }
|
18
|
-
|
19
|
-
context 'validations' do
|
20
|
-
let(:valid_web_hook_payload) {{}}
|
21
|
-
|
22
|
-
it { expect{ web_hook }.to raise_error(FatZebra::RequestValidationError) }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '.search', :vcr do
|
27
|
-
subject(:web_hooks) { FatZebra::WebHook.search }
|
28
|
-
|
29
|
-
before { 2.times { |i| FatZebra::WebHook.create(valid_web_hook_payload) } }
|
30
|
-
|
31
|
-
it { is_expected.to be_accepted }
|
32
|
-
it { expect(web_hooks.data.count).to be >= 2 }
|
33
|
-
end
|
34
|
-
|
35
|
-
describe '#update', :vcr do
|
36
|
-
subject(:web_hook) { FatZebra::WebHook.create(valid_web_hook_payload) }
|
37
|
-
before { web_hook.update(name: 'New Test hook')}
|
38
|
-
|
39
|
-
it { is_expected.to be_accepted }
|
40
|
-
it { expect(web_hook.name).to eq('New Test hook') }
|
41
|
-
end
|
42
|
-
|
43
|
-
describe '.delete', :vcr do
|
44
|
-
let(:create) { FatZebra::WebHook.create(valid_web_hook_payload) }
|
45
|
-
subject(:web_hook) { FatZebra::WebHook.delete(create.id) }
|
46
|
-
|
47
|
-
it { is_expected.to be_accepted }
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler/setup'
|
3
|
-
require 'rspec'
|
4
|
-
require 'vcr'
|
5
|
-
require 'webmock/rspec'
|
6
|
-
require 'date'
|
7
|
-
|
8
|
-
require 'fat_zebra'
|
9
|
-
|
10
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
-
|
12
|
-
##
|
13
|
-
# Remove ID from the URL
|
14
|
-
uri_ignoring_trailing_id = lambda do |request_1, request_2|
|
15
|
-
uri1, uri2 = request_1.uri, request_2.uri
|
16
|
-
regexp_trail_id = %r(/\d+\-[A-Z]\-.*\/)
|
17
|
-
regexp_trail_id = uri1.match(regexp_trail_id) ? regexp_trail_id : %r(/\d+\-[A-Z]\-.*\z)
|
18
|
-
if uri1.match(regexp_trail_id)
|
19
|
-
r1_without_id = uri1.gsub(regexp_trail_id, "")
|
20
|
-
r2_without_id = uri2.gsub(regexp_trail_id, "")
|
21
|
-
uri1.match(regexp_trail_id) && uri2.match(regexp_trail_id) && r1_without_id == r2_without_id
|
22
|
-
else
|
23
|
-
VCR.request_matchers.uri_without_param(:to, :from)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
VCR.configure do |config|
|
28
|
-
config.cassette_library_dir = 'spec/cassettes'
|
29
|
-
config.hook_into :webmock
|
30
|
-
config.configure_rspec_metadata!
|
31
|
-
config.allow_http_connections_when_no_cassette = true
|
32
|
-
config.default_cassette_options = { match_requests_on: [:method, :query, uri_ignoring_trailing_id] }
|
33
|
-
end
|
34
|
-
|
35
|
-
RSpec.configure do |config|
|
36
|
-
|
37
|
-
config.expect_with :rspec do |c|
|
38
|
-
c.syntax = :expect
|
39
|
-
end
|
40
|
-
config.mock_with :rspec
|
41
|
-
|
42
|
-
config.include_context 'payloads'
|
43
|
-
|
44
|
-
config.before(:each) do
|
45
|
-
FatZebra.configure do |config|
|
46
|
-
config.username = 'TEST'
|
47
|
-
config.token = 'TEST'
|
48
|
-
config.gateway = :sandbox
|
49
|
-
config.test_mode = true
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
data/spec/support/payloads.rb
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
|
3
|
-
shared_context 'payloads' do
|
4
|
-
|
5
|
-
let(:valid_purchase_payload) {{
|
6
|
-
amount: 10000,
|
7
|
-
card_holder: 'Matthew Savage',
|
8
|
-
card_number: '5123456789012346',
|
9
|
-
card_expiry: DateTime.new(2030, 2, 3).strftime('%m/%Y'),
|
10
|
-
cvv: 123,
|
11
|
-
reference: SecureRandom.hex,
|
12
|
-
customer_ip: '1.2.3.4'
|
13
|
-
}}
|
14
|
-
|
15
|
-
let(:valid_credit_card_payload) {{
|
16
|
-
card_holder: 'Matthew Savage',
|
17
|
-
card_number: '5123456789012346',
|
18
|
-
card_expiry: DateTime.new(2030, 2, 3).strftime('%m/%Y'),
|
19
|
-
cvv: 123
|
20
|
-
}}
|
21
|
-
|
22
|
-
let(:customer_valid_payload) {{
|
23
|
-
first_name: 'Harrold',
|
24
|
-
last_name: 'Humphries',
|
25
|
-
reference: SecureRandom.hex,
|
26
|
-
email: 'hhump@test.com',
|
27
|
-
ip_address: '180.200.33.181',
|
28
|
-
card: {
|
29
|
-
card_holder: 'Harrold Humphries Senior',
|
30
|
-
card_number: '5123456789012346',
|
31
|
-
expiry_date: '05/2023',
|
32
|
-
cvv: '123'
|
33
|
-
},
|
34
|
-
address: {
|
35
|
-
address: '1 Harriet Road',
|
36
|
-
city: 'Kooliablin',
|
37
|
-
state: 'NSW',
|
38
|
-
postcode: '2222',
|
39
|
-
country: 'Australia'
|
40
|
-
}
|
41
|
-
}}
|
42
|
-
|
43
|
-
let(:valid_sca_enrollment_payload) {{
|
44
|
-
customer: {
|
45
|
-
address_1: '23 Smith Road',
|
46
|
-
address_2: 'North Shore',
|
47
|
-
city: 'Canberra',
|
48
|
-
country: 'AU',
|
49
|
-
state: 'NSW',
|
50
|
-
email: 'test@test.com',
|
51
|
-
first_name: 'James',
|
52
|
-
last_name: 'Smith',
|
53
|
-
phone_number: '0444555666',
|
54
|
-
post_code: '2000',
|
55
|
-
passport_number: 'X1234567890',
|
56
|
-
passport_country: '036',
|
57
|
-
account_changed_at: '20191210',
|
58
|
-
account_created_at: '20191210',
|
59
|
-
account_password_changed_at: '20191210'
|
60
|
-
},
|
61
|
-
shipping_address: {
|
62
|
-
address_1: '23 Smith Road',
|
63
|
-
address_2: 'North Shore',
|
64
|
-
city: 'Sydney',
|
65
|
-
country: 'AU',
|
66
|
-
state: 'NSW',
|
67
|
-
email: 'test@test.com',
|
68
|
-
first_name: 'James',
|
69
|
-
last_name: 'Smith',
|
70
|
-
phone_number: '0444555666',
|
71
|
-
post_code: '2000',
|
72
|
-
method: 'pickup',
|
73
|
-
destination_code: '01',
|
74
|
-
},
|
75
|
-
custom: {
|
76
|
-
transaction_mode: 'mobile',
|
77
|
-
reference_id: SecureRandom.hex,
|
78
|
-
|
79
|
-
merchant_name: 'TEST',
|
80
|
-
merchant_new_customer: true,
|
81
|
-
preorder: 1,
|
82
|
-
|
83
|
-
http_accept: 'text/html',
|
84
|
-
http_user_agent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0',
|
85
|
-
|
86
|
-
recurring_end_date: '20201201',
|
87
|
-
recurring_frequency: 3,
|
88
|
-
recurring_original_purchase_date: '2019120112:00:00'
|
89
|
-
},
|
90
|
-
items: [
|
91
|
-
{
|
92
|
-
unit_price: 23.3,
|
93
|
-
product_description: 'Widgets',
|
94
|
-
product_name: 'Watch',
|
95
|
-
quantity: 1,
|
96
|
-
product_sku: '9999',
|
97
|
-
passenger_first_name: 'John',
|
98
|
-
passenger_last_name: 'Smith',
|
99
|
-
}
|
100
|
-
],
|
101
|
-
airline_data: {
|
102
|
-
legs: [
|
103
|
-
{
|
104
|
-
carrier_code: 'code',
|
105
|
-
departure_date: '20221012',
|
106
|
-
destination: 'SYD',
|
107
|
-
originating_airport_code: 'MEL',
|
108
|
-
}
|
109
|
-
],
|
110
|
-
number_of_passengers: 2,
|
111
|
-
passengers: [
|
112
|
-
{
|
113
|
-
first_name: 'John',
|
114
|
-
last_name: 'Smith',
|
115
|
-
},
|
116
|
-
{
|
117
|
-
first_name: 'Megan',
|
118
|
-
last_name: 'Doe',
|
119
|
-
}
|
120
|
-
]
|
121
|
-
}
|
122
|
-
}}
|
123
|
-
|
124
|
-
let(:valid_sca_validation_payload) {{
|
125
|
-
authentication_transaction_id: SecureRandom.hex,
|
126
|
-
signed_pares: SecureRandom.hex
|
127
|
-
}}
|
128
|
-
|
129
|
-
let(:valid_sca_authentication_payload) {{
|
130
|
-
card_token: credit_card.token,
|
131
|
-
amount: 100,
|
132
|
-
currency: 'AUD',
|
133
|
-
customer_ip: '111.111.111.111',
|
134
|
-
sca: {
|
135
|
-
type: 'enrollment',
|
136
|
-
merchant_reference_code: SecureRandom.uuid,
|
137
|
-
}
|
138
|
-
}}
|
139
|
-
|
140
|
-
let(:valid_charge_billing_agreement_payload) {{
|
141
|
-
reference: SecureRandom.uuid,
|
142
|
-
amount: 1100,
|
143
|
-
currency: "AUD",
|
144
|
-
customer_ip: '1.2.3.4',
|
145
|
-
options: {
|
146
|
-
brand_name: "EXAMPLE INC"
|
147
|
-
},
|
148
|
-
purchases: [{
|
149
|
-
description: "Sporting Goods",
|
150
|
-
custom_id: "CUST-HighFashions",
|
151
|
-
soft_descriptor: "HighFashions",
|
152
|
-
amount: {
|
153
|
-
item_total: 900,
|
154
|
-
shipping: 200
|
155
|
-
},
|
156
|
-
items: [{
|
157
|
-
name: "T-Shirt",
|
158
|
-
unit_amount: 900,
|
159
|
-
qty: 1,
|
160
|
-
category: "PHYSICAL_GOODS"
|
161
|
-
}],
|
162
|
-
shipping_address: {
|
163
|
-
method: "United States Postal Service 1",
|
164
|
-
address: {
|
165
|
-
first_name: "John",
|
166
|
-
last_name: "Doe",
|
167
|
-
address_1: "100 Kent Street",
|
168
|
-
address_2: "Cafe Lane",
|
169
|
-
city: "Sydney",
|
170
|
-
state: "NSW",
|
171
|
-
postcode: "2000",
|
172
|
-
country: "AU"
|
173
|
-
}
|
174
|
-
}
|
175
|
-
}]
|
176
|
-
}}
|
177
|
-
|
178
|
-
end
|