gocardless_pro 2.12.0 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +50 -0
  3. data/README.md +15 -1
  4. data/gocardless_pro.gemspec +2 -0
  5. data/lib/gocardless_pro.rb +3 -0
  6. data/lib/gocardless_pro/api_service.rb +3 -0
  7. data/lib/gocardless_pro/client.rb +6 -1
  8. data/lib/gocardless_pro/error/invalid_state_error.rb +2 -0
  9. data/lib/gocardless_pro/resources/creditor.rb +4 -0
  10. data/lib/gocardless_pro/resources/customer.rb +5 -0
  11. data/lib/gocardless_pro/resources/customer_notification.rb +97 -0
  12. data/lib/gocardless_pro/resources/event.rb +2 -0
  13. data/lib/gocardless_pro/resources/mandate_import.rb +1 -1
  14. data/lib/gocardless_pro/resources/mandate_import_entry.rb +1 -1
  15. data/lib/gocardless_pro/services/creditor_bank_accounts_service.rb +20 -2
  16. data/lib/gocardless_pro/services/creditors_service.rb +10 -1
  17. data/lib/gocardless_pro/services/customer_bank_accounts_service.rb +20 -2
  18. data/lib/gocardless_pro/services/customer_notifications_service.rb +66 -0
  19. data/lib/gocardless_pro/services/customers_service.rb +10 -1
  20. data/lib/gocardless_pro/services/mandate_imports_service.rb +40 -6
  21. data/lib/gocardless_pro/services/mandates_service.rb +30 -3
  22. data/lib/gocardless_pro/services/payments_service.rb +30 -3
  23. data/lib/gocardless_pro/services/redirect_flows_service.rb +20 -2
  24. data/lib/gocardless_pro/services/refunds_service.rb +11 -6
  25. data/lib/gocardless_pro/services/subscriptions_service.rb +20 -2
  26. data/lib/gocardless_pro/version.rb +1 -1
  27. data/spec/resources/customer_notification_spec.rb +73 -0
  28. data/spec/resources/customer_spec.rb +13 -0
  29. data/spec/resources/event_spec.rb +7 -0
  30. data/spec/services/creditor_bank_accounts_service_spec.rb +33 -4
  31. data/spec/services/creditors_service_spec.rb +33 -4
  32. data/spec/services/customer_bank_accounts_service_spec.rb +33 -4
  33. data/spec/services/customer_notifications_service_spec.rb +84 -0
  34. data/spec/services/customers_service_spec.rb +50 -4
  35. data/spec/services/events_service_spec.rb +11 -0
  36. data/spec/services/mandate_imports_service_spec.rb +33 -4
  37. data/spec/services/mandates_service_spec.rb +33 -4
  38. data/spec/services/payments_service_spec.rb +33 -4
  39. data/spec/services/redirect_flows_service_spec.rb +33 -4
  40. data/spec/services/refunds_service_spec.rb +33 -4
  41. data/spec/services/subscriptions_service_spec.rb +33 -4
  42. metadata +23 -3
  43. data/circle.yml +0 -11
@@ -20,6 +20,7 @@ describe GoCardlessPro::Resources::Event do
20
20
 
21
21
  'action' => 'action-input',
22
22
  'created_at' => 'created_at-input',
23
+ 'customer_notifications' => 'customer_notifications-input',
23
24
  'details' => 'details-input',
24
25
  'id' => 'id-input',
25
26
  'links' => 'links-input',
@@ -44,6 +45,8 @@ describe GoCardlessPro::Resources::Event do
44
45
 
45
46
  expect(get_list_response.records.first.created_at).to eq('created_at-input')
46
47
 
48
+ expect(get_list_response.records.first.customer_notifications).to eq('customer_notifications-input')
49
+
47
50
  expect(get_list_response.records.first.details).to eq('details-input')
48
51
 
49
52
  expect(get_list_response.records.first.id).to eq('id-input')
@@ -70,6 +73,7 @@ describe GoCardlessPro::Resources::Event do
70
73
 
71
74
  'action' => 'action-input',
72
75
  'created_at' => 'created_at-input',
76
+ 'customer_notifications' => 'customer_notifications-input',
73
77
  'details' => 'details-input',
74
78
  'id' => 'id-input',
75
79
  'links' => 'links-input',
@@ -92,6 +96,7 @@ describe GoCardlessPro::Resources::Event do
92
96
 
93
97
  'action' => 'action-input',
94
98
  'created_at' => 'created_at-input',
99
+ 'customer_notifications' => 'customer_notifications-input',
95
100
  'details' => 'details-input',
96
101
  'id' => 'id-input',
97
102
  'links' => 'links-input',
@@ -130,6 +135,7 @@ describe GoCardlessPro::Resources::Event do
130
135
 
131
136
  'action' => 'action-input',
132
137
  'created_at' => 'created_at-input',
138
+ 'customer_notifications' => 'customer_notifications-input',
133
139
  'details' => 'details-input',
134
140
  'id' => 'id-input',
135
141
  'links' => 'links-input',
@@ -162,6 +168,7 @@ describe GoCardlessPro::Resources::Event do
162
168
 
163
169
  'action' => 'action-input',
164
170
  'created_at' => 'created_at-input',
171
+ 'customer_notifications' => 'customer_notifications-input',
165
172
  'details' => 'details-input',
166
173
  'id' => 'id-input',
167
174
  'links' => 'links-input',
@@ -186,10 +186,39 @@ describe GoCardlessPro::Services::CreditorBankAccountsService do
186
186
  )
187
187
  end
188
188
 
189
- it 'fetches the already-created resource' do
190
- post_create_response
191
- expect(post_stub).to have_been_requested
192
- expect(get_stub).to have_been_requested
189
+ context 'with default behaviour' do
190
+ it 'fetches the already-created resource' do
191
+ post_create_response
192
+ expect(post_stub).to have_been_requested
193
+ expect(get_stub).to have_been_requested
194
+ end
195
+ end
196
+
197
+ context 'with on_idempotency_conflict: :raise' do
198
+ let(:client) do
199
+ GoCardlessPro::Client.new(
200
+ access_token: 'SECRET_TOKEN',
201
+ on_idempotency_conflict: :raise
202
+ )
203
+ end
204
+
205
+ it 'raises an IdempotencyConflict error' do
206
+ expect { post_create_response }.
207
+ to raise_error(GoCardlessPro::IdempotencyConflict)
208
+ end
209
+ end
210
+
211
+ context 'with on_idempotency_conflict: :unknown' do
212
+ let(:client) do
213
+ GoCardlessPro::Client.new(
214
+ access_token: 'SECRET_TOKEN',
215
+ on_idempotency_conflict: :unknown
216
+ )
217
+ end
218
+
219
+ it 'raises an ArgumentError' do
220
+ expect { post_create_response }.to raise_error(ArgumentError)
221
+ end
193
222
  end
194
223
  end
195
224
  end
@@ -211,10 +211,39 @@ describe GoCardlessPro::Services::CreditorsService do
211
211
  )
212
212
  end
213
213
 
214
- it 'fetches the already-created resource' do
215
- post_create_response
216
- expect(post_stub).to have_been_requested
217
- expect(get_stub).to have_been_requested
214
+ context 'with default behaviour' do
215
+ it 'fetches the already-created resource' do
216
+ post_create_response
217
+ expect(post_stub).to have_been_requested
218
+ expect(get_stub).to have_been_requested
219
+ end
220
+ end
221
+
222
+ context 'with on_idempotency_conflict: :raise' do
223
+ let(:client) do
224
+ GoCardlessPro::Client.new(
225
+ access_token: 'SECRET_TOKEN',
226
+ on_idempotency_conflict: :raise
227
+ )
228
+ end
229
+
230
+ it 'raises an IdempotencyConflict error' do
231
+ expect { post_create_response }.
232
+ to raise_error(GoCardlessPro::IdempotencyConflict)
233
+ end
234
+ end
235
+
236
+ context 'with on_idempotency_conflict: :unknown' do
237
+ let(:client) do
238
+ GoCardlessPro::Client.new(
239
+ access_token: 'SECRET_TOKEN',
240
+ on_idempotency_conflict: :unknown
241
+ )
242
+ end
243
+
244
+ it 'raises an ArgumentError' do
245
+ expect { post_create_response }.to raise_error(ArgumentError)
246
+ end
218
247
  end
219
248
  end
220
249
  end
@@ -186,10 +186,39 @@ describe GoCardlessPro::Services::CustomerBankAccountsService do
186
186
  )
187
187
  end
188
188
 
189
- it 'fetches the already-created resource' do
190
- post_create_response
191
- expect(post_stub).to have_been_requested
192
- expect(get_stub).to have_been_requested
189
+ context 'with default behaviour' do
190
+ it 'fetches the already-created resource' do
191
+ post_create_response
192
+ expect(post_stub).to have_been_requested
193
+ expect(get_stub).to have_been_requested
194
+ end
195
+ end
196
+
197
+ context 'with on_idempotency_conflict: :raise' do
198
+ let(:client) do
199
+ GoCardlessPro::Client.new(
200
+ access_token: 'SECRET_TOKEN',
201
+ on_idempotency_conflict: :raise
202
+ )
203
+ end
204
+
205
+ it 'raises an IdempotencyConflict error' do
206
+ expect { post_create_response }.
207
+ to raise_error(GoCardlessPro::IdempotencyConflict)
208
+ end
209
+ end
210
+
211
+ context 'with on_idempotency_conflict: :unknown' do
212
+ let(:client) do
213
+ GoCardlessPro::Client.new(
214
+ access_token: 'SECRET_TOKEN',
215
+ on_idempotency_conflict: :unknown
216
+ )
217
+ end
218
+
219
+ it 'raises an ArgumentError' do
220
+ expect { post_create_response }.to raise_error(ArgumentError)
221
+ end
193
222
  end
194
223
  end
195
224
  end
@@ -0,0 +1,84 @@
1
+ require 'spec_helper'
2
+
3
+ describe GoCardlessPro::Services::CustomerNotificationsService do
4
+ let(:client) do
5
+ GoCardlessPro::Client.new(
6
+ access_token: 'SECRET_TOKEN'
7
+ )
8
+ end
9
+
10
+ let(:response_headers) { { 'Content-Type' => 'application/json' } }
11
+
12
+ describe '#handle' do
13
+ subject(:post_response) { client.customer_notifications.handle(resource_id) }
14
+
15
+ let(:resource_id) { 'ABC123' }
16
+
17
+ let!(:stub) do
18
+ # /customer_notifications/%v/actions/handle
19
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
20
+ stub_request(:post, /.*api.gocardless.com#{stub_url}/).to_return(
21
+ body: {
22
+ 'customer_notifications' => {
23
+
24
+ 'action_taken' => 'action_taken-input',
25
+ 'action_taken_at' => 'action_taken_at-input',
26
+ 'action_taken_by' => 'action_taken_by-input',
27
+ 'id' => 'id-input',
28
+ 'links' => 'links-input',
29
+ 'type' => 'type-input',
30
+ },
31
+ }.to_json,
32
+ headers: response_headers
33
+ )
34
+ end
35
+
36
+ it 'wraps the response and calls the right endpoint' do
37
+ expect(post_response).to be_a(GoCardlessPro::Resources::CustomerNotification)
38
+
39
+ expect(stub).to have_been_requested
40
+ end
41
+
42
+ describe 'retry behaviour' do
43
+ it "doesn't retry errors" do
44
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
45
+ stub = stub_request(:post, /.*api.gocardless.com#{stub_url}/).
46
+ to_timeout
47
+
48
+ expect { post_response }.to raise_error(Faraday::TimeoutError)
49
+ expect(stub).to have_been_requested
50
+ end
51
+ end
52
+
53
+ context 'when the request needs a body and custom header' do
54
+ let(:body) { { foo: 'bar' } }
55
+ let(:headers) { { 'Foo' => 'Bar' } }
56
+ subject(:post_response) { client.customer_notifications.handle(resource_id, body, headers) }
57
+
58
+ let(:resource_id) { 'ABC123' }
59
+
60
+ let!(:stub) do
61
+ # /customer_notifications/%v/actions/handle
62
+ stub_url = '/customer_notifications/:identity/actions/handle'.gsub(':identity', resource_id)
63
+ stub_request(:post, /.*api.gocardless.com#{stub_url}/).
64
+ with(
65
+ body: { foo: 'bar' },
66
+ headers: { 'Foo' => 'Bar' }
67
+ ).to_return(
68
+ body: {
69
+ 'customer_notifications' => {
70
+
71
+ 'action_taken' => 'action_taken-input',
72
+ 'action_taken_at' => 'action_taken_at-input',
73
+ 'action_taken_by' => 'action_taken_by-input',
74
+ 'id' => 'id-input',
75
+ 'links' => 'links-input',
76
+ 'type' => 'type-input',
77
+ },
78
+ }.to_json,
79
+ headers: response_headers
80
+ )
81
+ end
82
+ end
83
+ end
84
+ end
@@ -29,6 +29,7 @@ describe GoCardlessPro::Services::CustomersService do
29
29
  'id' => 'id-input',
30
30
  'language' => 'language-input',
31
31
  'metadata' => 'metadata-input',
32
+ 'phone_number' => 'phone_number-input',
32
33
  'postal_code' => 'postal_code-input',
33
34
  'region' => 'region-input',
34
35
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -55,6 +56,7 @@ describe GoCardlessPro::Services::CustomersService do
55
56
  'id' => 'id-input',
56
57
  'language' => 'language-input',
57
58
  'metadata' => 'metadata-input',
59
+ 'phone_number' => 'phone_number-input',
58
60
  'postal_code' => 'postal_code-input',
59
61
  'region' => 'region-input',
60
62
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -81,6 +83,7 @@ describe GoCardlessPro::Services::CustomersService do
81
83
  'id' => 'id-input',
82
84
  'language' => 'language-input',
83
85
  'metadata' => 'metadata-input',
86
+ 'phone_number' => 'phone_number-input',
84
87
  'postal_code' => 'postal_code-input',
85
88
  'region' => 'region-input',
86
89
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -163,6 +166,7 @@ describe GoCardlessPro::Services::CustomersService do
163
166
  'id' => 'id-input',
164
167
  'language' => 'language-input',
165
168
  'metadata' => 'metadata-input',
169
+ 'phone_number' => 'phone_number-input',
166
170
  'postal_code' => 'postal_code-input',
167
171
  'region' => 'region-input',
168
172
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -212,6 +216,7 @@ describe GoCardlessPro::Services::CustomersService do
212
216
  'id' => 'id-input',
213
217
  'language' => 'language-input',
214
218
  'metadata' => 'metadata-input',
219
+ 'phone_number' => 'phone_number-input',
215
220
  'postal_code' => 'postal_code-input',
216
221
  'region' => 'region-input',
217
222
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -221,10 +226,39 @@ describe GoCardlessPro::Services::CustomersService do
221
226
  )
222
227
  end
223
228
 
224
- it 'fetches the already-created resource' do
225
- post_create_response
226
- expect(post_stub).to have_been_requested
227
- expect(get_stub).to have_been_requested
229
+ context 'with default behaviour' do
230
+ it 'fetches the already-created resource' do
231
+ post_create_response
232
+ expect(post_stub).to have_been_requested
233
+ expect(get_stub).to have_been_requested
234
+ end
235
+ end
236
+
237
+ context 'with on_idempotency_conflict: :raise' do
238
+ let(:client) do
239
+ GoCardlessPro::Client.new(
240
+ access_token: 'SECRET_TOKEN',
241
+ on_idempotency_conflict: :raise
242
+ )
243
+ end
244
+
245
+ it 'raises an IdempotencyConflict error' do
246
+ expect { post_create_response }.
247
+ to raise_error(GoCardlessPro::IdempotencyConflict)
248
+ end
249
+ end
250
+
251
+ context 'with on_idempotency_conflict: :unknown' do
252
+ let(:client) do
253
+ GoCardlessPro::Client.new(
254
+ access_token: 'SECRET_TOKEN',
255
+ on_idempotency_conflict: :unknown
256
+ )
257
+ end
258
+
259
+ it 'raises an ArgumentError' do
260
+ expect { post_create_response }.to raise_error(ArgumentError)
261
+ end
228
262
  end
229
263
  end
230
264
  end
@@ -251,6 +285,7 @@ describe GoCardlessPro::Services::CustomersService do
251
285
  'id' => 'id-input',
252
286
  'language' => 'language-input',
253
287
  'metadata' => 'metadata-input',
288
+ 'phone_number' => 'phone_number-input',
254
289
  'postal_code' => 'postal_code-input',
255
290
  'region' => 'region-input',
256
291
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -302,6 +337,8 @@ describe GoCardlessPro::Services::CustomersService do
302
337
 
303
338
  expect(get_list_response.records.first.metadata).to eq('metadata-input')
304
339
 
340
+ expect(get_list_response.records.first.phone_number).to eq('phone_number-input')
341
+
305
342
  expect(get_list_response.records.first.postal_code).to eq('postal_code-input')
306
343
 
307
344
  expect(get_list_response.records.first.region).to eq('region-input')
@@ -361,6 +398,7 @@ describe GoCardlessPro::Services::CustomersService do
361
398
  'id' => 'id-input',
362
399
  'language' => 'language-input',
363
400
  'metadata' => 'metadata-input',
401
+ 'phone_number' => 'phone_number-input',
364
402
  'postal_code' => 'postal_code-input',
365
403
  'region' => 'region-input',
366
404
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -393,6 +431,7 @@ describe GoCardlessPro::Services::CustomersService do
393
431
  'id' => 'id-input',
394
432
  'language' => 'language-input',
395
433
  'metadata' => 'metadata-input',
434
+ 'phone_number' => 'phone_number-input',
396
435
  'postal_code' => 'postal_code-input',
397
436
  'region' => 'region-input',
398
437
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -434,6 +473,7 @@ describe GoCardlessPro::Services::CustomersService do
434
473
  'id' => 'id-input',
435
474
  'language' => 'language-input',
436
475
  'metadata' => 'metadata-input',
476
+ 'phone_number' => 'phone_number-input',
437
477
  'postal_code' => 'postal_code-input',
438
478
  'region' => 'region-input',
439
479
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -466,6 +506,7 @@ describe GoCardlessPro::Services::CustomersService do
466
506
  'id' => 'id-input',
467
507
  'language' => 'language-input',
468
508
  'metadata' => 'metadata-input',
509
+ 'phone_number' => 'phone_number-input',
469
510
  'postal_code' => 'postal_code-input',
470
511
  'region' => 'region-input',
471
512
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -503,6 +544,7 @@ describe GoCardlessPro::Services::CustomersService do
503
544
  'id' => 'id-input',
504
545
  'language' => 'language-input',
505
546
  'metadata' => 'metadata-input',
547
+ 'phone_number' => 'phone_number-input',
506
548
  'postal_code' => 'postal_code-input',
507
549
  'region' => 'region-input',
508
550
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -538,6 +580,7 @@ describe GoCardlessPro::Services::CustomersService do
538
580
  'id' => 'id-input',
539
581
  'language' => 'language-input',
540
582
  'metadata' => 'metadata-input',
583
+ 'phone_number' => 'phone_number-input',
541
584
  'postal_code' => 'postal_code-input',
542
585
  'region' => 'region-input',
543
586
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -586,6 +629,7 @@ describe GoCardlessPro::Services::CustomersService do
586
629
  'id' => 'id-input',
587
630
  'language' => 'language-input',
588
631
  'metadata' => 'metadata-input',
632
+ 'phone_number' => 'phone_number-input',
589
633
  'postal_code' => 'postal_code-input',
590
634
  'region' => 'region-input',
591
635
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -628,6 +672,7 @@ describe GoCardlessPro::Services::CustomersService do
628
672
  'id' => 'id-input',
629
673
  'language' => 'language-input',
630
674
  'metadata' => 'metadata-input',
675
+ 'phone_number' => 'phone_number-input',
631
676
  'postal_code' => 'postal_code-input',
632
677
  'region' => 'region-input',
633
678
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -747,6 +792,7 @@ describe GoCardlessPro::Services::CustomersService do
747
792
  'id' => 'id-input',
748
793
  'language' => 'language-input',
749
794
  'metadata' => 'metadata-input',
795
+ 'phone_number' => 'phone_number-input',
750
796
  'postal_code' => 'postal_code-input',
751
797
  'region' => 'region-input',
752
798
  'swedish_identity_number' => 'swedish_identity_number-input',
@@ -19,6 +19,7 @@ describe GoCardlessPro::Services::EventsService do
19
19
 
20
20
  'action' => 'action-input',
21
21
  'created_at' => 'created_at-input',
22
+ 'customer_notifications' => 'customer_notifications-input',
22
23
  'details' => 'details-input',
23
24
  'id' => 'id-input',
24
25
  'links' => 'links-input',
@@ -48,6 +49,8 @@ describe GoCardlessPro::Services::EventsService do
48
49
 
49
50
  expect(get_list_response.records.first.created_at).to eq('created_at-input')
50
51
 
52
+ expect(get_list_response.records.first.customer_notifications).to eq('customer_notifications-input')
53
+
51
54
  expect(get_list_response.records.first.details).to eq('details-input')
52
55
 
53
56
  expect(get_list_response.records.first.id).to eq('id-input')
@@ -97,6 +100,7 @@ describe GoCardlessPro::Services::EventsService do
97
100
 
98
101
  'action' => 'action-input',
99
102
  'created_at' => 'created_at-input',
103
+ 'customer_notifications' => 'customer_notifications-input',
100
104
  'details' => 'details-input',
101
105
  'id' => 'id-input',
102
106
  'links' => 'links-input',
@@ -119,6 +123,7 @@ describe GoCardlessPro::Services::EventsService do
119
123
 
120
124
  'action' => 'action-input',
121
125
  'created_at' => 'created_at-input',
126
+ 'customer_notifications' => 'customer_notifications-input',
122
127
  'details' => 'details-input',
123
128
  'id' => 'id-input',
124
129
  'links' => 'links-input',
@@ -150,6 +155,7 @@ describe GoCardlessPro::Services::EventsService do
150
155
 
151
156
  'action' => 'action-input',
152
157
  'created_at' => 'created_at-input',
158
+ 'customer_notifications' => 'customer_notifications-input',
153
159
  'details' => 'details-input',
154
160
  'id' => 'id-input',
155
161
  'links' => 'links-input',
@@ -172,6 +178,7 @@ describe GoCardlessPro::Services::EventsService do
172
178
 
173
179
  'action' => 'action-input',
174
180
  'created_at' => 'created_at-input',
181
+ 'customer_notifications' => 'customer_notifications-input',
175
182
  'details' => 'details-input',
176
183
  'id' => 'id-input',
177
184
  'links' => 'links-input',
@@ -199,6 +206,7 @@ describe GoCardlessPro::Services::EventsService do
199
206
 
200
207
  'action' => 'action-input',
201
208
  'created_at' => 'created_at-input',
209
+ 'customer_notifications' => 'customer_notifications-input',
202
210
  'details' => 'details-input',
203
211
  'id' => 'id-input',
204
212
  'links' => 'links-input',
@@ -224,6 +232,7 @@ describe GoCardlessPro::Services::EventsService do
224
232
 
225
233
  'action' => 'action-input',
226
234
  'created_at' => 'created_at-input',
235
+ 'customer_notifications' => 'customer_notifications-input',
227
236
  'details' => 'details-input',
228
237
  'id' => 'id-input',
229
238
  'links' => 'links-input',
@@ -262,6 +271,7 @@ describe GoCardlessPro::Services::EventsService do
262
271
 
263
272
  'action' => 'action-input',
264
273
  'created_at' => 'created_at-input',
274
+ 'customer_notifications' => 'customer_notifications-input',
265
275
  'details' => 'details-input',
266
276
  'id' => 'id-input',
267
277
  'links' => 'links-input',
@@ -294,6 +304,7 @@ describe GoCardlessPro::Services::EventsService do
294
304
 
295
305
  'action' => 'action-input',
296
306
  'created_at' => 'created_at-input',
307
+ 'customer_notifications' => 'customer_notifications-input',
297
308
  'details' => 'details-input',
298
309
  'id' => 'id-input',
299
310
  'links' => 'links-input',