beyonic 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,393 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Beyonic::Webhook do
4
- describe ".crate" do
5
- let(:payload) {
6
- {
7
- event: "payment.status.changed",
8
- target: "https://my.callback.url/"
9
- }
10
- }
11
-
12
- subject {
13
- Beyonic.api_key = "my-authorization-token"
14
- Beyonic::Webhook.create(payload)
15
- }
16
-
17
- context 'Success response' do
18
- before {
19
- stub_request(:post, "https://staging.beyonic.com/api/webhooks").to_return(
20
- body: File.new('spec/examples/webhooks/create_response.json'))
21
- }
22
-
23
- it {
24
- is_expected.to have_requested(:post, "https://staging.beyonic.com/api/webhooks").with(
25
- headers: {"Authorization" => "Token my-authorization-token", "Beyonic-Version" => "v1"}
26
- )
27
- }
28
- it { is_expected.to be_an(Beyonic::Webhook) }
29
-
30
- it { is_expected.to have_attributes(id: 2, user: 2) }
31
- end
32
-
33
- context 'Bad request' do
34
- before {
35
- stub_request(:post, "https://staging.beyonic.com/api/webhooks").to_return(
36
- body: File.new('spec/examples/webhooks/create_invalid_response.json'),
37
- status: 400
38
- )
39
- }
40
-
41
- subject {
42
- -> {
43
- Beyonic.api_key = "my-authorization-token"
44
- Beyonic::Webhook.create(payload)
45
- }
46
- }
47
- it {
48
- is_expected.to raise_error(Beyonic::AbstractApi::ApiError)
49
- }
50
- end
51
-
52
- context 'Unauthorized' do
53
- before {
54
- stub_request(:post, "https://staging.beyonic.com/api/webhooks").to_return(
55
- body: File.new('spec/examples/invalid_token_error.json'),
56
- status: 401
57
- )
58
- }
59
-
60
- subject {
61
- -> {
62
- Beyonic.api_key = "my-authorization-token"
63
- Beyonic::Webhook.create(payload)
64
- }
65
- }
66
- it {
67
- is_expected.to raise_error
68
- }
69
- end
70
-
71
- end
72
-
73
- describe ".list" do
74
- subject {
75
- Beyonic.api_key = "my-authorization-token"
76
- Beyonic::Webhook.list
77
- }
78
-
79
- context 'Success response' do
80
- before {
81
- stub_request(:get, "https://staging.beyonic.com/api/webhooks").to_return(
82
- body: File.new('spec/examples/webhooks/list_response.json'))
83
- }
84
-
85
- it {
86
- is_expected.to have_requested(:get, "https://staging.beyonic.com/api/webhooks").with(
87
- headers: {"Authorization" => "Token my-authorization-token", "Beyonic-Version" => "v1"}
88
- )
89
- }
90
- it { is_expected.to be_an(Array) }
91
- it { is_expected.to have(2).items }
92
-
93
- it { is_expected.to all(be_an(Beyonic::Webhook)) }
94
- end
95
-
96
- context 'Unauthorized' do
97
- before {
98
- stub_request(:get, "https://staging.beyonic.com/api/webhooks").to_return(
99
- body: File.new('spec/examples/invalid_token_error.json'),
100
- status: 401
101
- )
102
- }
103
-
104
- subject {
105
- -> {
106
- Beyonic.api_key = "my-authorization-token"
107
- Beyonic::Webhook.list
108
- }
109
- }
110
- it {
111
- is_expected.to raise_error
112
- }
113
- end
114
- end
115
-
116
- describe ".get" do
117
- subject {
118
- Beyonic.api_key = "my-authorization-token"
119
- Beyonic::Webhook.get(2)
120
- }
121
-
122
- context 'Success response' do
123
- before {
124
- stub_request(:get, "https://staging.beyonic.com/api/webhooks/2").to_return(
125
- body: File.new('spec/examples/webhooks/get_response.json'))
126
- }
127
-
128
- it {
129
- is_expected.to have_requested(:get, "https://staging.beyonic.com/api/webhooks/2").with(
130
- headers: {"Authorization" => "Token my-authorization-token", "Beyonic-Version" => "v1"}
131
- )
132
- }
133
- it { is_expected.to be_an(Beyonic::Webhook) }
134
-
135
- it { is_expected.to have_attributes(id: 2, user: 2) }
136
- end
137
-
138
- context 'Unauthorized' do
139
- before {
140
- stub_request(:get, "https://staging.beyonic.com/api/webhooks/23").to_return(
141
- body: File.new('spec/examples/invalid_token_error.json'),
142
- status: 401
143
- )
144
- }
145
-
146
- subject {
147
- -> {
148
- Beyonic.api_key = "my-authorization-token"
149
- Beyonic::Webhook.get(2)
150
- }
151
- }
152
- it {
153
- is_expected.to raise_error
154
- }
155
- end
156
-
157
- context 'Forbidden' do
158
- before {
159
- stub_request(:get, "https://staging.beyonic.com/api/webhooks/666").to_return(
160
- body: File.new('spec/examples/no_permissions_error.json'),
161
- status: 403
162
- )
163
- }
164
-
165
- subject {
166
- -> {
167
- Beyonic.api_key = "my-authorization-token"
168
- Beyonic::Webhook.get(666)
169
- }
170
- }
171
- it {
172
- is_expected.to raise_error
173
- }
174
- end
175
- end
176
-
177
- describe ".update" do
178
- let(:payload) {
179
- {
180
- event: "payment.status.changed",
181
- target: "https://my.callback2.url/"
182
- }
183
- }
184
-
185
- subject {
186
- Beyonic.api_key = "my-authorization-token"
187
- Beyonic::Webhook.update(2, target: "https://my.callback2.url/")
188
- }
189
-
190
- context 'Success response' do
191
- before {
192
- stub_request(:patch, "https://staging.beyonic.com/api/webhooks/2").to_return(
193
- body: File.new('spec/examples/webhooks/update_response.json'))
194
- }
195
-
196
- it {
197
- is_expected.to have_requested(:patch, "https://staging.beyonic.com/api/webhooks/2").with(
198
- headers: {"Authorization" => "Token my-authorization-token", "Beyonic-Version" => "v1"}
199
- )
200
- }
201
- it { is_expected.to be_an(Beyonic::Webhook) }
202
-
203
- it { is_expected.to have_attributes(id: 2, target: "https://my.callback2.url/") }
204
- end
205
-
206
-
207
- context 'Bad request' do
208
- before {
209
- stub_request(:patch, "https://staging.beyonic.com/api/webhooks/3").to_return(
210
- body: File.new('spec/examples/webhooks/create_invalid_response.json'),
211
- status: 400
212
- )
213
- }
214
-
215
- subject {
216
- -> {
217
- Beyonic.api_key = "my-authorization-token"
218
- Beyonic::Webhook.update(3, event: "wrongevent")
219
- }
220
- }
221
- it {
222
- is_expected.to raise_error(Beyonic::AbstractApi::ApiError)
223
- }
224
- end
225
-
226
-
227
- context 'Forbidden' do
228
- before {
229
- stub_request(:patch, "https://staging.beyonic.com/api/webhooks/666").to_return(
230
- body: File.new('spec/examples/no_permissions_error.json'),
231
- status: 403
232
- )
233
- }
234
-
235
- subject {
236
- -> {
237
- Beyonic.api_key = "my-authorization-token"
238
- Beyonic::Webhook.update(666, target: "https://my.callback2.url/")
239
- }
240
- }
241
- it {
242
- is_expected.to raise_error
243
- }
244
- end
245
-
246
- context 'Unauthorized' do
247
- before {
248
- stub_request(:patch, "https://staging.beyonic.com/api/webhooks/23").to_return(
249
- body: File.new('spec/examples/invalid_token_error.json'),
250
- status: 401
251
- )
252
- }
253
-
254
- subject {
255
- -> {
256
- Beyonic.api_key = "my-authorization-token2"
257
- Beyonic::Webhook.update(2, target: "https://my.callback2.url/")
258
- }
259
- }
260
- it {
261
- is_expected.to raise_error
262
- }
263
- end
264
- end
265
-
266
-
267
- describe ".delete" do
268
-
269
- subject {
270
- Beyonic.api_key = "my-authorization-token"
271
- Beyonic::Webhook.delete(2)
272
- }
273
-
274
- context 'Success response' do
275
- before {
276
- stub_request(:delete, "https://staging.beyonic.com/api/webhooks/2").to_return(
277
- status: 204)
278
- }
279
-
280
- it {
281
- is_expected.to have_requested(:delete, "https://staging.beyonic.com/api/webhooks/2").with(
282
- headers: {"Authorization" => "Token my-authorization-token", "Beyonic-Version" => "v1"}
283
- )
284
- }
285
- it { is_expected.to be_truthy }
286
-
287
- end
288
-
289
- context 'Forbidden' do
290
- before {
291
- stub_request(:delete, "https://staging.beyonic.com/api/webhooks/666").to_return(
292
- body: File.new('spec/examples/no_permissions_error.json'),
293
- status: 403
294
- )
295
- }
296
-
297
- subject {
298
- -> {
299
- Beyonic.api_key = "my-authorization-token"
300
- Beyonic::Webhook.delete(666)
301
- }
302
- }
303
- it {
304
- is_expected.to raise_error
305
- }
306
- end
307
-
308
- context 'Unauthorized' do
309
- before {
310
- stub_request(:delete, "https://staging.beyonic.com/api/webhooks/23").to_return(
311
- body: File.new('spec/examples/invalid_token_error.json'),
312
- status: 401
313
- )
314
- }
315
-
316
- subject {
317
- -> {
318
- Beyonic.api_key = "my-authorization-token2"
319
- Beyonic::Webhook.delete(2)
320
- }
321
- }
322
- it {
323
- is_expected.to raise_error
324
- }
325
- end
326
- end
327
-
328
- describe "#save" do
329
- context 'new object' do
330
- subject { Beyonic::Webhook }
331
- let(:payload) {
332
- {
333
- event: "payment.status.changed",
334
- target: "https://my.callback.url/"
335
- }
336
- }
337
-
338
- before {
339
- allow(subject).to receive(:create)
340
- subject.new(payload).save
341
- }
342
-
343
- it {
344
- is_expected.to have_received(:create).with(payload)
345
- }
346
- end
347
-
348
- context 'loaded object' do
349
- subject { Beyonic::Webhook }
350
- before {
351
- stub_request(:get, "https://staging.beyonic.com/api/webhooks/2").to_return(
352
- body: File.new('spec/examples/webhooks/get_response.json'))
353
- allow(subject).to receive(:update)
354
-
355
- temp = subject.get(2)
356
- temp.target = "https://google.com/"
357
- temp.save
358
- }
359
-
360
- it {
361
- is_expected.to have_received(:update).with(2, hash_including(target: "https://google.com/"))
362
- }
363
- end
364
- end
365
-
366
- describe "#id=" do
367
- before {
368
- stub_request(:get, "https://staging.beyonic.com/api/webhooks/2").to_return(
369
- body: File.new('spec/examples/webhooks/get_response.json'))
370
- }
371
-
372
- let(:loaded_webhook) { Beyonic::Webhook.get(2) }
373
-
374
- it {
375
- expect{
376
- loaded_webhook.id=(4)
377
- }.to raise_error "Can't change id of existing Beyonic::Webhook"
378
- }
379
-
380
- it {
381
- expect {
382
- loaded_webhook[:id]=(4)
383
- }.to raise_error "Can't change id of existing Beyonic::Webhook"
384
- }
385
-
386
- it {
387
- expect {
388
- loaded_webhook[:target]="foo"
389
- }.to_not raise_error
390
- }
391
- end
392
-
393
- end
@@ -1,3 +0,0 @@
1
- {
2
- detail: "Invalid token"
3
- }
@@ -1,3 +0,0 @@
1
- {
2
- "detail": "You do not have permission to perform this action."
3
- }
@@ -1,5 +0,0 @@
1
- {
2
- "target": [
3
- "This field is required."
4
- ]
5
- }
@@ -1,28 +0,0 @@
1
- {
2
- "id": 3607,
3
- "organization": 2,
4
- "amount": "100.2",
5
- "currency": "UGX",
6
- "payment_type": "money",
7
- "metadata": {
8
- "id": "1234",
9
- "name": "Lucy"
10
- },
11
- "description": "Per diem payment",
12
- "phone_nos": [
13
- "+256773712831"
14
- ],
15
- "state": "new",
16
- "last_error": null,
17
- "rejected_reason": null,
18
- "rejected_by": null,
19
- "rejected_time": null,
20
- "cancelled_reason": null,
21
- "cancelled_by": null,
22
- "cancelled_time": null,
23
- "created": "2014-11-30T16:08:25.421Z",
24
- "author": 2,
25
- "modified": "2014-11-30T16:08:25.422Z",
26
- "updated_by": null,
27
- "start_date": "2014-11-30T16:08:25.422Z"
28
- }
@@ -1,23 +0,0 @@
1
- {
2
- "id": 23,
3
- "organization": 2,
4
- "amount": "0.0000",
5
- "currency": "UGX",
6
- "payment_type": "money",
7
- "metadata": null,
8
- "description": "Test Payments",
9
- "phone_nos": [],
10
- "state": "processed_with_errors",
11
- "last_error": "Error with payment 21. Error: (1062, \"Duplicate entry '6-2013-08-29 14:27:43-5000.0000' for key 'account_id_2'\") Type: IntegrityError",
12
- "rejected_reason": null,
13
- "rejected_by": null,
14
- "rejected_time": null,
15
- "cancelled_reason": null,
16
- "cancelled_by": null,
17
- "cancelled_time": null,
18
- "created": "2013-08-29T14:27:42Z",
19
- "author": 2,
20
- "modified": "2013-09-29T23:26:02Z",
21
- "updated_by": 1,
22
- "start_date": "2013-08-29T00:00:00Z"
23
- }