gocardless_pro 2.29.0 → 2.30.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|