gocardless_pro 2.29.0 → 2.30.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/lib/gocardless_pro/client.rb +1 -1
- data/lib/gocardless_pro/resources/billing_request.rb +2 -0
- data/lib/gocardless_pro/resources/billing_request_flow.rb +4 -0
- data/lib/gocardless_pro/resources/block.rb +19 -9
- data/lib/gocardless_pro/resources/institution.rb +5 -1
- data/lib/gocardless_pro/resources/payer_authorisation.rb +4 -4
- data/lib/gocardless_pro/resources/redirect_flow.rb +4 -0
- data/lib/gocardless_pro/services/billing_request_flows_service.rb +1 -1
- data/lib/gocardless_pro/services/billing_requests_service.rb +40 -2
- data/lib/gocardless_pro/services/institutions_service.rb +1 -1
- data/lib/gocardless_pro/version.rb +1 -1
- data/spec/resources/billing_request_flow_spec.rb +14 -0
- data/spec/resources/billing_request_spec.rb +108 -0
- data/spec/resources/block_spec.rb +18 -1
- data/spec/resources/creditor_bank_account_spec.rb +2 -0
- data/spec/resources/customer_bank_account_spec.rb +2 -0
- data/spec/resources/customer_notification_spec.rb +2 -0
- data/spec/resources/customer_spec.rb +2 -0
- data/spec/resources/instalment_schedule_spec.rb +2 -0
- data/spec/resources/mandate_import_spec.rb +4 -0
- data/spec/resources/mandate_spec.rb +4 -0
- data/spec/resources/payer_authorisation_spec.rb +4 -0
- data/spec/resources/payment_spec.rb +4 -0
- data/spec/resources/redirect_flow_spec.rb +2 -0
- data/spec/resources/scenario_simulator_spec.rb +2 -0
- data/spec/resources/subscription_spec.rb +6 -0
- data/spec/resources/webhook_spec.rb +2 -0
- data/spec/services/billing_request_flows_service_spec.rb +14 -0
- data/spec/services/billing_requests_service_spec.rb +123 -0
- data/spec/services/blocks_service_spec.rb +18 -1
- data/spec/services/creditor_bank_accounts_service_spec.rb +2 -0
- data/spec/services/customer_bank_accounts_service_spec.rb +2 -0
- data/spec/services/customer_notifications_service_spec.rb +2 -0
- data/spec/services/customers_service_spec.rb +2 -0
- data/spec/services/instalment_schedules_service_spec.rb +2 -0
- data/spec/services/mandate_imports_service_spec.rb +4 -0
- data/spec/services/mandates_service_spec.rb +4 -0
- data/spec/services/payer_authorisations_service_spec.rb +4 -0
- data/spec/services/payments_service_spec.rb +4 -0
- data/spec/services/redirect_flows_service_spec.rb +2 -0
- data/spec/services/scenario_simulators_service_spec.rb +2 -0
- data/spec/services/subscriptions_service_spec.rb +6 -0
- data/spec/services/webhooks_service_spec.rb +2 -0
- metadata +7 -7
@@ -559,6 +559,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
559
559
|
# /subscriptions/%v/actions/pause
|
560
560
|
stub_url = '/subscriptions/:identity/actions/pause'.gsub(':identity', resource_id)
|
561
561
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
562
|
+
|
562
563
|
body: {
|
563
564
|
'subscriptions' => {
|
564
565
|
|
@@ -584,6 +585,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
584
585
|
'upcoming_payments' => 'upcoming_payments-input',
|
585
586
|
},
|
586
587
|
}.to_json,
|
588
|
+
|
587
589
|
headers: response_headers
|
588
590
|
)
|
589
591
|
end
|
@@ -649,6 +651,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
649
651
|
# /subscriptions/%v/actions/resume
|
650
652
|
stub_url = '/subscriptions/:identity/actions/resume'.gsub(':identity', resource_id)
|
651
653
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
654
|
+
|
652
655
|
body: {
|
653
656
|
'subscriptions' => {
|
654
657
|
|
@@ -674,6 +677,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
674
677
|
'upcoming_payments' => 'upcoming_payments-input',
|
675
678
|
},
|
676
679
|
}.to_json,
|
680
|
+
|
677
681
|
headers: response_headers
|
678
682
|
)
|
679
683
|
end
|
@@ -739,6 +743,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
739
743
|
# /subscriptions/%v/actions/cancel
|
740
744
|
stub_url = '/subscriptions/:identity/actions/cancel'.gsub(':identity', resource_id)
|
741
745
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
746
|
+
|
742
747
|
body: {
|
743
748
|
'subscriptions' => {
|
744
749
|
|
@@ -764,6 +769,7 @@ describe GoCardlessPro::Resources::Subscription do
|
|
764
769
|
'upcoming_payments' => 'upcoming_payments-input',
|
765
770
|
},
|
766
771
|
}.to_json,
|
772
|
+
|
767
773
|
headers: response_headers
|
768
774
|
)
|
769
775
|
end
|
@@ -254,6 +254,7 @@ describe GoCardlessPro::Resources::Webhook do
|
|
254
254
|
# /webhooks/%v/actions/retry
|
255
255
|
stub_url = '/webhooks/:identity/actions/retry'.gsub(':identity', resource_id)
|
256
256
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
257
|
+
|
257
258
|
body: {
|
258
259
|
'webhooks' => {
|
259
260
|
|
@@ -272,6 +273,7 @@ describe GoCardlessPro::Resources::Webhook do
|
|
272
273
|
'url' => 'url-input',
|
273
274
|
},
|
274
275
|
}.to_json,
|
276
|
+
|
275
277
|
headers: response_headers
|
276
278
|
)
|
277
279
|
end
|
@@ -18,6 +18,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
18
18
|
'authorisation_url' => 'authorisation_url-input',
|
19
19
|
'auto_fulfil' => 'auto_fulfil-input',
|
20
20
|
'created_at' => 'created_at-input',
|
21
|
+
'exit_uri' => 'exit_uri-input',
|
21
22
|
'expires_at' => 'expires_at-input',
|
22
23
|
'id' => 'id-input',
|
23
24
|
'links' => 'links-input',
|
@@ -25,6 +26,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
25
26
|
'lock_customer_details' => 'lock_customer_details-input',
|
26
27
|
'redirect_uri' => 'redirect_uri-input',
|
27
28
|
'session_token' => 'session_token-input',
|
29
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
28
30
|
}
|
29
31
|
end
|
30
32
|
|
@@ -37,6 +39,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
37
39
|
'authorisation_url' => 'authorisation_url-input',
|
38
40
|
'auto_fulfil' => 'auto_fulfil-input',
|
39
41
|
'created_at' => 'created_at-input',
|
42
|
+
'exit_uri' => 'exit_uri-input',
|
40
43
|
'expires_at' => 'expires_at-input',
|
41
44
|
'id' => 'id-input',
|
42
45
|
'links' => 'links-input',
|
@@ -44,6 +47,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
44
47
|
'lock_customer_details' => 'lock_customer_details-input',
|
45
48
|
'redirect_uri' => 'redirect_uri-input',
|
46
49
|
'session_token' => 'session_token-input',
|
50
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
47
51
|
},
|
48
52
|
}
|
49
53
|
).
|
@@ -56,6 +60,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
56
60
|
'authorisation_url' => 'authorisation_url-input',
|
57
61
|
'auto_fulfil' => 'auto_fulfil-input',
|
58
62
|
'created_at' => 'created_at-input',
|
63
|
+
'exit_uri' => 'exit_uri-input',
|
59
64
|
'expires_at' => 'expires_at-input',
|
60
65
|
'id' => 'id-input',
|
61
66
|
'links' => 'links-input',
|
@@ -63,6 +68,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
63
68
|
'lock_customer_details' => 'lock_customer_details-input',
|
64
69
|
'redirect_uri' => 'redirect_uri-input',
|
65
70
|
'session_token' => 'session_token-input',
|
71
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
66
72
|
},
|
67
73
|
|
68
74
|
}.to_json,
|
@@ -131,6 +137,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
131
137
|
'authorisation_url' => 'authorisation_url-input',
|
132
138
|
'auto_fulfil' => 'auto_fulfil-input',
|
133
139
|
'created_at' => 'created_at-input',
|
140
|
+
'exit_uri' => 'exit_uri-input',
|
134
141
|
'expires_at' => 'expires_at-input',
|
135
142
|
'id' => 'id-input',
|
136
143
|
'links' => 'links-input',
|
@@ -138,6 +145,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
138
145
|
'lock_customer_details' => 'lock_customer_details-input',
|
139
146
|
'redirect_uri' => 'redirect_uri-input',
|
140
147
|
'session_token' => 'session_token-input',
|
148
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
141
149
|
}
|
142
150
|
end
|
143
151
|
|
@@ -179,12 +187,14 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
179
187
|
# /billing_request_flows/%v/actions/initialise
|
180
188
|
stub_url = '/billing_request_flows/:identity/actions/initialise'.gsub(':identity', resource_id)
|
181
189
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
190
|
+
|
182
191
|
body: {
|
183
192
|
'billing_request_flows' => {
|
184
193
|
|
185
194
|
'authorisation_url' => 'authorisation_url-input',
|
186
195
|
'auto_fulfil' => 'auto_fulfil-input',
|
187
196
|
'created_at' => 'created_at-input',
|
197
|
+
'exit_uri' => 'exit_uri-input',
|
188
198
|
'expires_at' => 'expires_at-input',
|
189
199
|
'id' => 'id-input',
|
190
200
|
'links' => 'links-input',
|
@@ -192,8 +202,10 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
192
202
|
'lock_customer_details' => 'lock_customer_details-input',
|
193
203
|
'redirect_uri' => 'redirect_uri-input',
|
194
204
|
'session_token' => 'session_token-input',
|
205
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
195
206
|
},
|
196
207
|
}.to_json,
|
208
|
+
|
197
209
|
headers: response_headers
|
198
210
|
)
|
199
211
|
end
|
@@ -236,6 +248,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
236
248
|
'authorisation_url' => 'authorisation_url-input',
|
237
249
|
'auto_fulfil' => 'auto_fulfil-input',
|
238
250
|
'created_at' => 'created_at-input',
|
251
|
+
'exit_uri' => 'exit_uri-input',
|
239
252
|
'expires_at' => 'expires_at-input',
|
240
253
|
'id' => 'id-input',
|
241
254
|
'links' => 'links-input',
|
@@ -243,6 +256,7 @@ describe GoCardlessPro::Services::BillingRequestFlowsService do
|
|
243
256
|
'lock_customer_details' => 'lock_customer_details-input',
|
244
257
|
'redirect_uri' => 'redirect_uri-input',
|
245
258
|
'session_token' => 'session_token-input',
|
259
|
+
'show_redirect_buttons' => 'show_redirect_buttons-input',
|
246
260
|
},
|
247
261
|
}.to_json,
|
248
262
|
headers: response_headers
|
@@ -19,6 +19,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
19
19
|
|
20
20
|
'actions' => 'actions-input',
|
21
21
|
'created_at' => 'created_at-input',
|
22
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
22
23
|
'id' => 'id-input',
|
23
24
|
'links' => 'links-input',
|
24
25
|
'mandate_request' => 'mandate_request-input',
|
@@ -50,6 +51,8 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
50
51
|
|
51
52
|
expect(get_list_response.records.first.created_at).to eq('created_at-input')
|
52
53
|
|
54
|
+
expect(get_list_response.records.first.fallback_enabled).to eq('fallback_enabled-input')
|
55
|
+
|
53
56
|
expect(get_list_response.records.first.id).to eq('id-input')
|
54
57
|
|
55
58
|
expect(get_list_response.records.first.mandate_request).to eq('mandate_request-input')
|
@@ -103,6 +106,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
103
106
|
|
104
107
|
'actions' => 'actions-input',
|
105
108
|
'created_at' => 'created_at-input',
|
109
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
106
110
|
'id' => 'id-input',
|
107
111
|
'links' => 'links-input',
|
108
112
|
'mandate_request' => 'mandate_request-input',
|
@@ -127,6 +131,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
127
131
|
|
128
132
|
'actions' => 'actions-input',
|
129
133
|
'created_at' => 'created_at-input',
|
134
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
130
135
|
'id' => 'id-input',
|
131
136
|
'links' => 'links-input',
|
132
137
|
'mandate_request' => 'mandate_request-input',
|
@@ -160,6 +165,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
160
165
|
|
161
166
|
'actions' => 'actions-input',
|
162
167
|
'created_at' => 'created_at-input',
|
168
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
163
169
|
'id' => 'id-input',
|
164
170
|
'links' => 'links-input',
|
165
171
|
'mandate_request' => 'mandate_request-input',
|
@@ -184,6 +190,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
184
190
|
|
185
191
|
'actions' => 'actions-input',
|
186
192
|
'created_at' => 'created_at-input',
|
193
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
187
194
|
'id' => 'id-input',
|
188
195
|
'links' => 'links-input',
|
189
196
|
'mandate_request' => 'mandate_request-input',
|
@@ -213,6 +220,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
213
220
|
|
214
221
|
'actions' => 'actions-input',
|
215
222
|
'created_at' => 'created_at-input',
|
223
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
216
224
|
'id' => 'id-input',
|
217
225
|
'links' => 'links-input',
|
218
226
|
'mandate_request' => 'mandate_request-input',
|
@@ -240,6 +248,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
240
248
|
|
241
249
|
'actions' => 'actions-input',
|
242
250
|
'created_at' => 'created_at-input',
|
251
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
243
252
|
'id' => 'id-input',
|
244
253
|
'links' => 'links-input',
|
245
254
|
'mandate_request' => 'mandate_request-input',
|
@@ -272,6 +281,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
272
281
|
|
273
282
|
'actions' => 'actions-input',
|
274
283
|
'created_at' => 'created_at-input',
|
284
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
275
285
|
'id' => 'id-input',
|
276
286
|
'links' => 'links-input',
|
277
287
|
'mandate_request' => 'mandate_request-input',
|
@@ -290,6 +300,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
290
300
|
|
291
301
|
'actions' => 'actions-input',
|
292
302
|
'created_at' => 'created_at-input',
|
303
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
293
304
|
'id' => 'id-input',
|
294
305
|
'links' => 'links-input',
|
295
306
|
'mandate_request' => 'mandate_request-input',
|
@@ -308,6 +319,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
308
319
|
|
309
320
|
'actions' => 'actions-input',
|
310
321
|
'created_at' => 'created_at-input',
|
322
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
311
323
|
'id' => 'id-input',
|
312
324
|
'links' => 'links-input',
|
313
325
|
'mandate_request' => 'mandate_request-input',
|
@@ -382,6 +394,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
382
394
|
|
383
395
|
'actions' => 'actions-input',
|
384
396
|
'created_at' => 'created_at-input',
|
397
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
385
398
|
'id' => 'id-input',
|
386
399
|
'links' => 'links-input',
|
387
400
|
'mandate_request' => 'mandate_request-input',
|
@@ -423,6 +436,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
423
436
|
|
424
437
|
'actions' => 'actions-input',
|
425
438
|
'created_at' => 'created_at-input',
|
439
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
426
440
|
'id' => 'id-input',
|
427
441
|
'links' => 'links-input',
|
428
442
|
'mandate_request' => 'mandate_request-input',
|
@@ -476,6 +490,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
476
490
|
|
477
491
|
'actions' => 'actions-input',
|
478
492
|
'created_at' => 'created_at-input',
|
493
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
479
494
|
'id' => 'id-input',
|
480
495
|
'links' => 'links-input',
|
481
496
|
'mandate_request' => 'mandate_request-input',
|
@@ -510,6 +525,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
510
525
|
|
511
526
|
'actions' => 'actions-input',
|
512
527
|
'created_at' => 'created_at-input',
|
528
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
513
529
|
'id' => 'id-input',
|
514
530
|
'links' => 'links-input',
|
515
531
|
'mandate_request' => 'mandate_request-input',
|
@@ -615,11 +631,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
615
631
|
# /billing_requests/%v/actions/collect_customer_details
|
616
632
|
stub_url = '/billing_requests/:identity/actions/collect_customer_details'.gsub(':identity', resource_id)
|
617
633
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
634
|
+
|
618
635
|
body: {
|
619
636
|
'billing_requests' => {
|
620
637
|
|
621
638
|
'actions' => 'actions-input',
|
622
639
|
'created_at' => 'created_at-input',
|
640
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
623
641
|
'id' => 'id-input',
|
624
642
|
'links' => 'links-input',
|
625
643
|
'mandate_request' => 'mandate_request-input',
|
@@ -629,6 +647,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
629
647
|
'status' => 'status-input',
|
630
648
|
},
|
631
649
|
}.to_json,
|
650
|
+
|
632
651
|
headers: response_headers
|
633
652
|
)
|
634
653
|
end
|
@@ -670,6 +689,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
670
689
|
|
671
690
|
'actions' => 'actions-input',
|
672
691
|
'created_at' => 'created_at-input',
|
692
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
673
693
|
'id' => 'id-input',
|
674
694
|
'links' => 'links-input',
|
675
695
|
'mandate_request' => 'mandate_request-input',
|
@@ -694,11 +714,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
694
714
|
# /billing_requests/%v/actions/collect_bank_account
|
695
715
|
stub_url = '/billing_requests/:identity/actions/collect_bank_account'.gsub(':identity', resource_id)
|
696
716
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
717
|
+
|
697
718
|
body: {
|
698
719
|
'billing_requests' => {
|
699
720
|
|
700
721
|
'actions' => 'actions-input',
|
701
722
|
'created_at' => 'created_at-input',
|
723
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
702
724
|
'id' => 'id-input',
|
703
725
|
'links' => 'links-input',
|
704
726
|
'mandate_request' => 'mandate_request-input',
|
@@ -708,6 +730,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
708
730
|
'status' => 'status-input',
|
709
731
|
},
|
710
732
|
}.to_json,
|
733
|
+
|
711
734
|
headers: response_headers
|
712
735
|
)
|
713
736
|
end
|
@@ -749,6 +772,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
749
772
|
|
750
773
|
'actions' => 'actions-input',
|
751
774
|
'created_at' => 'created_at-input',
|
775
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
752
776
|
'id' => 'id-input',
|
753
777
|
'links' => 'links-input',
|
754
778
|
'mandate_request' => 'mandate_request-input',
|
@@ -773,11 +797,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
773
797
|
# /billing_requests/%v/actions/fulfil
|
774
798
|
stub_url = '/billing_requests/:identity/actions/fulfil'.gsub(':identity', resource_id)
|
775
799
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
800
|
+
|
776
801
|
body: {
|
777
802
|
'billing_requests' => {
|
778
803
|
|
779
804
|
'actions' => 'actions-input',
|
780
805
|
'created_at' => 'created_at-input',
|
806
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
781
807
|
'id' => 'id-input',
|
782
808
|
'links' => 'links-input',
|
783
809
|
'mandate_request' => 'mandate_request-input',
|
@@ -787,6 +813,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
787
813
|
'status' => 'status-input',
|
788
814
|
},
|
789
815
|
}.to_json,
|
816
|
+
|
790
817
|
headers: response_headers
|
791
818
|
)
|
792
819
|
end
|
@@ -828,6 +855,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
828
855
|
|
829
856
|
'actions' => 'actions-input',
|
830
857
|
'created_at' => 'created_at-input',
|
858
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
831
859
|
'id' => 'id-input',
|
832
860
|
'links' => 'links-input',
|
833
861
|
'mandate_request' => 'mandate_request-input',
|
@@ -852,11 +880,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
852
880
|
# /billing_requests/%v/actions/confirm_payer_details
|
853
881
|
stub_url = '/billing_requests/:identity/actions/confirm_payer_details'.gsub(':identity', resource_id)
|
854
882
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
883
|
+
|
855
884
|
body: {
|
856
885
|
'billing_requests' => {
|
857
886
|
|
858
887
|
'actions' => 'actions-input',
|
859
888
|
'created_at' => 'created_at-input',
|
889
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
860
890
|
'id' => 'id-input',
|
861
891
|
'links' => 'links-input',
|
862
892
|
'mandate_request' => 'mandate_request-input',
|
@@ -866,6 +896,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
866
896
|
'status' => 'status-input',
|
867
897
|
},
|
868
898
|
}.to_json,
|
899
|
+
|
869
900
|
headers: response_headers
|
870
901
|
)
|
871
902
|
end
|
@@ -907,6 +938,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
907
938
|
|
908
939
|
'actions' => 'actions-input',
|
909
940
|
'created_at' => 'created_at-input',
|
941
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
910
942
|
'id' => 'id-input',
|
911
943
|
'links' => 'links-input',
|
912
944
|
'mandate_request' => 'mandate_request-input',
|
@@ -931,11 +963,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
931
963
|
# /billing_requests/%v/actions/cancel
|
932
964
|
stub_url = '/billing_requests/:identity/actions/cancel'.gsub(':identity', resource_id)
|
933
965
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
966
|
+
|
934
967
|
body: {
|
935
968
|
'billing_requests' => {
|
936
969
|
|
937
970
|
'actions' => 'actions-input',
|
938
971
|
'created_at' => 'created_at-input',
|
972
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
939
973
|
'id' => 'id-input',
|
940
974
|
'links' => 'links-input',
|
941
975
|
'mandate_request' => 'mandate_request-input',
|
@@ -945,6 +979,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
945
979
|
'status' => 'status-input',
|
946
980
|
},
|
947
981
|
}.to_json,
|
982
|
+
|
948
983
|
headers: response_headers
|
949
984
|
)
|
950
985
|
end
|
@@ -986,6 +1021,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
986
1021
|
|
987
1022
|
'actions' => 'actions-input',
|
988
1023
|
'created_at' => 'created_at-input',
|
1024
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
989
1025
|
'id' => 'id-input',
|
990
1026
|
'links' => 'links-input',
|
991
1027
|
'mandate_request' => 'mandate_request-input',
|
@@ -1010,11 +1046,13 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
1010
1046
|
# /billing_requests/%v/actions/notify
|
1011
1047
|
stub_url = '/billing_requests/:identity/actions/notify'.gsub(':identity', resource_id)
|
1012
1048
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
1049
|
+
|
1013
1050
|
body: {
|
1014
1051
|
'billing_requests' => {
|
1015
1052
|
|
1016
1053
|
'actions' => 'actions-input',
|
1017
1054
|
'created_at' => 'created_at-input',
|
1055
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
1018
1056
|
'id' => 'id-input',
|
1019
1057
|
'links' => 'links-input',
|
1020
1058
|
'mandate_request' => 'mandate_request-input',
|
@@ -1024,6 +1062,7 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
1024
1062
|
'status' => 'status-input',
|
1025
1063
|
},
|
1026
1064
|
}.to_json,
|
1065
|
+
|
1027
1066
|
headers: response_headers
|
1028
1067
|
)
|
1029
1068
|
end
|
@@ -1065,6 +1104,90 @@ describe GoCardlessPro::Services::BillingRequestsService do
|
|
1065
1104
|
|
1066
1105
|
'actions' => 'actions-input',
|
1067
1106
|
'created_at' => 'created_at-input',
|
1107
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
1108
|
+
'id' => 'id-input',
|
1109
|
+
'links' => 'links-input',
|
1110
|
+
'mandate_request' => 'mandate_request-input',
|
1111
|
+
'metadata' => 'metadata-input',
|
1112
|
+
'payment_request' => 'payment_request-input',
|
1113
|
+
'resources' => 'resources-input',
|
1114
|
+
'status' => 'status-input',
|
1115
|
+
},
|
1116
|
+
}.to_json,
|
1117
|
+
headers: response_headers
|
1118
|
+
)
|
1119
|
+
end
|
1120
|
+
end
|
1121
|
+
end
|
1122
|
+
|
1123
|
+
describe '#fallback' do
|
1124
|
+
subject(:post_response) { client.billing_requests.fallback(resource_id) }
|
1125
|
+
|
1126
|
+
let(:resource_id) { 'ABC123' }
|
1127
|
+
|
1128
|
+
let!(:stub) do
|
1129
|
+
# /billing_requests/%v/actions/fallback
|
1130
|
+
stub_url = '/billing_requests/:identity/actions/fallback'.gsub(':identity', resource_id)
|
1131
|
+
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
1132
|
+
|
1133
|
+
body: {
|
1134
|
+
'billing_requests' => {
|
1135
|
+
|
1136
|
+
'actions' => 'actions-input',
|
1137
|
+
'created_at' => 'created_at-input',
|
1138
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
1139
|
+
'id' => 'id-input',
|
1140
|
+
'links' => 'links-input',
|
1141
|
+
'mandate_request' => 'mandate_request-input',
|
1142
|
+
'metadata' => 'metadata-input',
|
1143
|
+
'payment_request' => 'payment_request-input',
|
1144
|
+
'resources' => 'resources-input',
|
1145
|
+
'status' => 'status-input',
|
1146
|
+
},
|
1147
|
+
}.to_json,
|
1148
|
+
|
1149
|
+
headers: response_headers
|
1150
|
+
)
|
1151
|
+
end
|
1152
|
+
|
1153
|
+
it 'wraps the response and calls the right endpoint' do
|
1154
|
+
expect(post_response).to be_a(GoCardlessPro::Resources::BillingRequest)
|
1155
|
+
|
1156
|
+
expect(stub).to have_been_requested
|
1157
|
+
end
|
1158
|
+
|
1159
|
+
describe 'retry behaviour' do
|
1160
|
+
it "doesn't retry errors" do
|
1161
|
+
stub_url = '/billing_requests/:identity/actions/fallback'.gsub(':identity', resource_id)
|
1162
|
+
stub = stub_request(:post, /.*api.gocardless.com#{stub_url}/).
|
1163
|
+
to_timeout
|
1164
|
+
|
1165
|
+
expect { post_response }.to raise_error(Faraday::ConnectionFailed)
|
1166
|
+
expect(stub).to have_been_requested
|
1167
|
+
end
|
1168
|
+
end
|
1169
|
+
|
1170
|
+
context 'when the request needs a body and custom header' do
|
1171
|
+
let(:body) { { foo: 'bar' } }
|
1172
|
+
let(:headers) { { 'Foo' => 'Bar' } }
|
1173
|
+
subject(:post_response) { client.billing_requests.fallback(resource_id, body, headers) }
|
1174
|
+
|
1175
|
+
let(:resource_id) { 'ABC123' }
|
1176
|
+
|
1177
|
+
let!(:stub) do
|
1178
|
+
# /billing_requests/%v/actions/fallback
|
1179
|
+
stub_url = '/billing_requests/:identity/actions/fallback'.gsub(':identity', resource_id)
|
1180
|
+
stub_request(:post, /.*api.gocardless.com#{stub_url}/).
|
1181
|
+
with(
|
1182
|
+
body: { foo: 'bar' },
|
1183
|
+
headers: { 'Foo' => 'Bar' }
|
1184
|
+
).to_return(
|
1185
|
+
body: {
|
1186
|
+
'billing_requests' => {
|
1187
|
+
|
1188
|
+
'actions' => 'actions-input',
|
1189
|
+
'created_at' => 'created_at-input',
|
1190
|
+
'fallback_enabled' => 'fallback_enabled-input',
|
1068
1191
|
'id' => 'id-input',
|
1069
1192
|
'links' => 'links-input',
|
1070
1193
|
'mandate_request' => 'mandate_request-input',
|
@@ -601,6 +601,7 @@ describe GoCardlessPro::Services::BlocksService do
|
|
601
601
|
# /blocks/%v/actions/disable
|
602
602
|
stub_url = '/blocks/:identity/actions/disable'.gsub(':identity', resource_id)
|
603
603
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
604
|
+
|
604
605
|
body: {
|
605
606
|
'blocks' => {
|
606
607
|
|
@@ -614,6 +615,7 @@ describe GoCardlessPro::Services::BlocksService do
|
|
614
615
|
'updated_at' => 'updated_at-input',
|
615
616
|
},
|
616
617
|
}.to_json,
|
618
|
+
|
617
619
|
headers: response_headers
|
618
620
|
)
|
619
621
|
end
|
@@ -678,6 +680,7 @@ describe GoCardlessPro::Services::BlocksService do
|
|
678
680
|
# /blocks/%v/actions/enable
|
679
681
|
stub_url = '/blocks/:identity/actions/enable'.gsub(':identity', resource_id)
|
680
682
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
683
|
+
|
681
684
|
body: {
|
682
685
|
'blocks' => {
|
683
686
|
|
@@ -691,6 +694,7 @@ describe GoCardlessPro::Services::BlocksService do
|
|
691
694
|
'updated_at' => 'updated_at-input',
|
692
695
|
},
|
693
696
|
}.to_json,
|
697
|
+
|
694
698
|
headers: response_headers
|
695
699
|
)
|
696
700
|
end
|
@@ -755,8 +759,9 @@ describe GoCardlessPro::Services::BlocksService do
|
|
755
759
|
# /block_by_ref
|
756
760
|
stub_url = '/block_by_ref'.gsub(':identity', resource_id)
|
757
761
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
762
|
+
|
758
763
|
body: {
|
759
|
-
'blocks' =>
|
764
|
+
'blocks' => [{
|
760
765
|
|
761
766
|
'active' => 'active-input',
|
762
767
|
'block_type' => 'block_type-input',
|
@@ -767,7 +772,14 @@ describe GoCardlessPro::Services::BlocksService do
|
|
767
772
|
'resource_reference' => 'resource_reference-input',
|
768
773
|
'updated_at' => 'updated_at-input',
|
769
774
|
}],
|
775
|
+
meta: {
|
776
|
+
cursors: {
|
777
|
+
before: nil,
|
778
|
+
after: 'ABC123',
|
779
|
+
},
|
780
|
+
},
|
770
781
|
}.to_json,
|
782
|
+
|
771
783
|
headers: response_headers
|
772
784
|
)
|
773
785
|
end
|
@@ -778,6 +790,11 @@ describe GoCardlessPro::Services::BlocksService do
|
|
778
790
|
expect(stub).to have_been_requested
|
779
791
|
end
|
780
792
|
|
793
|
+
it 'exposes the cursors for before and after' do
|
794
|
+
expect(post_response.before).to eq(nil)
|
795
|
+
expect(post_response.after).to eq('ABC123')
|
796
|
+
end
|
797
|
+
|
781
798
|
describe 'retry behaviour' do
|
782
799
|
it "doesn't retry errors" do
|
783
800
|
stub_url = '/block_by_ref'.gsub(':identity', resource_id)
|
@@ -647,6 +647,7 @@ describe GoCardlessPro::Services::CreditorBankAccountsService do
|
|
647
647
|
# /creditor_bank_accounts/%v/actions/disable
|
648
648
|
stub_url = '/creditor_bank_accounts/:identity/actions/disable'.gsub(':identity', resource_id)
|
649
649
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
650
|
+
|
650
651
|
body: {
|
651
652
|
'creditor_bank_accounts' => {
|
652
653
|
|
@@ -663,6 +664,7 @@ describe GoCardlessPro::Services::CreditorBankAccountsService do
|
|
663
664
|
'metadata' => 'metadata-input',
|
664
665
|
},
|
665
666
|
}.to_json,
|
667
|
+
|
666
668
|
headers: response_headers
|
667
669
|
)
|
668
670
|
end
|
@@ -709,6 +709,7 @@ describe GoCardlessPro::Services::CustomerBankAccountsService do
|
|
709
709
|
# /customer_bank_accounts/%v/actions/disable
|
710
710
|
stub_url = '/customer_bank_accounts/:identity/actions/disable'.gsub(':identity', resource_id)
|
711
711
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
712
|
+
|
712
713
|
body: {
|
713
714
|
'customer_bank_accounts' => {
|
714
715
|
|
@@ -725,6 +726,7 @@ describe GoCardlessPro::Services::CustomerBankAccountsService do
|
|
725
726
|
'metadata' => 'metadata-input',
|
726
727
|
},
|
727
728
|
}.to_json,
|
729
|
+
|
728
730
|
headers: response_headers
|
729
731
|
)
|
730
732
|
end
|
@@ -18,6 +18,7 @@ describe GoCardlessPro::Services::CustomerNotificationsService do
|
|
18
18
|
# /customer_notifications/%v/actions/handle
|
19
19
|
stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
|
20
20
|
stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
|
21
|
+
|
21
22
|
body: {
|
22
23
|
'customer_notifications' => {
|
23
24
|
|
@@ -29,6 +30,7 @@ describe GoCardlessPro::Services::CustomerNotificationsService do
|
|
29
30
|
'type' => 'type-input',
|
30
31
|
},
|
31
32
|
}.to_json,
|
33
|
+
|
32
34
|
headers: response_headers
|
33
35
|
)
|
34
36
|
end
|
@@ -830,6 +830,7 @@ describe GoCardlessPro::Services::CustomersService do
|
|
830
830
|
# /customers/%v
|
831
831
|
stub_url = '/customers/:identity'.gsub(':identity', resource_id)
|
832
832
|
stub_request(:delete, /.*api.gocardless.com#{stub_url}/).to_return(
|
833
|
+
|
833
834
|
body: {
|
834
835
|
'customers' => {
|
835
836
|
|
@@ -853,6 +854,7 @@ describe GoCardlessPro::Services::CustomersService do
|
|
853
854
|
'swedish_identity_number' => 'swedish_identity_number-input',
|
854
855
|
},
|
855
856
|
}.to_json,
|
857
|
+
|
856
858
|
headers: response_headers
|
857
859
|
)
|
858
860
|
end
|