fat_zebra 3.2.9 → 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/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,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
|