conekta-tiempometa 2.4.2

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.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.rspec +1 -0
  4. data/CHANGELOG.md +124 -0
  5. data/Dockerfile +44 -0
  6. data/Gemfile +13 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +182 -0
  9. data/Rakefile +1 -0
  10. data/conekta.gemspec +29 -0
  11. data/lib/conekta/address.rb +5 -0
  12. data/lib/conekta/card.rb +21 -0
  13. data/lib/conekta/charge.rb +25 -0
  14. data/lib/conekta/conekta_object.rb +109 -0
  15. data/lib/conekta/customer.rb +82 -0
  16. data/lib/conekta/customer_info.rb +5 -0
  17. data/lib/conekta/destination.rb +17 -0
  18. data/lib/conekta/details.rb +5 -0
  19. data/lib/conekta/discount_line.rb +19 -0
  20. data/lib/conekta/error.rb +99 -0
  21. data/lib/conekta/error_details.rb +14 -0
  22. data/lib/conekta/event.rb +9 -0
  23. data/lib/conekta/line_item.rb +21 -0
  24. data/lib/conekta/list.rb +59 -0
  25. data/lib/conekta/log.rb +10 -0
  26. data/lib/conekta/method.rb +4 -0
  27. data/lib/conekta/operations/create.rb +19 -0
  28. data/lib/conekta/operations/create_member.rb +40 -0
  29. data/lib/conekta/operations/custom_action.rb +13 -0
  30. data/lib/conekta/operations/delete.rb +45 -0
  31. data/lib/conekta/operations/find.rb +21 -0
  32. data/lib/conekta/operations/update.rb +11 -0
  33. data/lib/conekta/operations/where.rb +30 -0
  34. data/lib/conekta/order.rb +87 -0
  35. data/lib/conekta/payee.rb +66 -0
  36. data/lib/conekta/payment_method.rb +4 -0
  37. data/lib/conekta/payment_source.rb +17 -0
  38. data/lib/conekta/payout.rb +7 -0
  39. data/lib/conekta/payout_method.rb +17 -0
  40. data/lib/conekta/plan.rb +16 -0
  41. data/lib/conekta/refund.rb +6 -0
  42. data/lib/conekta/requestor.rb +80 -0
  43. data/lib/conekta/resource.rb +54 -0
  44. data/lib/conekta/return.rb +12 -0
  45. data/lib/conekta/shipping_contact.rb +19 -0
  46. data/lib/conekta/shipping_line.rb +20 -0
  47. data/lib/conekta/subscription.rb +25 -0
  48. data/lib/conekta/tax_line.rb +19 -0
  49. data/lib/conekta/token.rb +8 -0
  50. data/lib/conekta/transfer.rb +7 -0
  51. data/lib/conekta/util.rb +136 -0
  52. data/lib/conekta/version.rb +3 -0
  53. data/lib/conekta/webhook.rb +12 -0
  54. data/lib/conekta/webhook_log.rb +4 -0
  55. data/lib/conekta.rb +101 -0
  56. data/lib/ssl_data/ca_bundle.crt +3955 -0
  57. data/locales/en.yml +9 -0
  58. data/locales/es.yml +10 -0
  59. data/readme_files/banner.png +0 -0
  60. data/readme_files/conekta-badge.png +0 -0
  61. data/readme_files/ruby-badge.png +0 -0
  62. data/spec/conekta/1.0.0/.DS_Store +0 -0
  63. data/spec/conekta/1.0.0/card_spec.rb +40 -0
  64. data/spec/conekta/1.0.0/charge_spec.rb +152 -0
  65. data/spec/conekta/1.0.0/customer_spec.rb +147 -0
  66. data/spec/conekta/1.0.0/error_spec.rb +69 -0
  67. data/spec/conekta/1.0.0/event_spec.rb +26 -0
  68. data/spec/conekta/1.0.0/log_spec.rb +20 -0
  69. data/spec/conekta/1.0.0/payout_spec.rb +60 -0
  70. data/spec/conekta/1.0.0/plan_spec.rb +53 -0
  71. data/spec/conekta/1.0.0/token_spec.rb +5 -0
  72. data/spec/conekta/1.0.0/webhook_spec.rb +36 -0
  73. data/spec/conekta/2.0.0/customer_spec.rb +77 -0
  74. data/spec/conekta/2.0.0/discount_line_spec.rb +49 -0
  75. data/spec/conekta/2.0.0/error_spec.rb +61 -0
  76. data/spec/conekta/2.0.0/line_item_spec.rb +53 -0
  77. data/spec/conekta/2.0.0/list_spec.rb +29 -0
  78. data/spec/conekta/2.0.0/order_spec.rb +291 -0
  79. data/spec/conekta/2.0.0/payee_spec.rb +55 -0
  80. data/spec/conekta/2.0.0/shipping_contact_spec.rb +60 -0
  81. data/spec/conekta/2.0.0/shipping_line_spec.rb +53 -0
  82. data/spec/conekta/2.0.0/source_spec.rb +31 -0
  83. data/spec/conekta/2.0.0/tax_line_spec.rb +44 -0
  84. data/spec/conekta/2.0.0/transfer_spec.rb +59 -0
  85. data/spec/conekta_spec.rb +29 -0
  86. data/spec/spec_helper.rb +14 -0
  87. data/spec/support/fixtures/orders.json +1127 -0
  88. data/spec/support/shared_context.rb +49 -0
  89. metadata +229 -0
@@ -0,0 +1,77 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Customer do
4
+ include_context "API 2.0.0"
5
+ context "updating customers" do
6
+ context "creating submodels" do
7
+ include_context "customer"
8
+
9
+ let(:customer) { Conekta::Customer.create(customer_data) }
10
+
11
+ let(:customer_oxxo) {
12
+ {
13
+ payment_sources: [{
14
+ type: 'oxxo_recurrent',
15
+ expires_at: 157_559_040_0
16
+ }],
17
+ email: 'test@gmail.com',
18
+ name: 'Mario'
19
+ }
20
+ }
21
+
22
+ let(:oxxo_source_params) do
23
+ {
24
+ type: 'oxxo_recurrent',
25
+ expires_at: 157_559_040_0
26
+ }
27
+ end
28
+
29
+ let(:source_params) do
30
+ {
31
+ type: "card",
32
+ token_id: "tok_test_visa_4242"
33
+ }
34
+ end
35
+
36
+ let(:shipping_contact_params) do
37
+ {
38
+ email: "rogue@xmen.org",
39
+ phone: "+5213353319758",
40
+ receiver: "Test Conekta",
41
+ address: {
42
+ street1: "250 Alexis St",
43
+ city: "Red Deer",
44
+ state: "Alberta",
45
+ country: "CA",
46
+ postal_code: "T4N 0B8",
47
+ }
48
+ }
49
+ end
50
+
51
+ it "successfully creates source for customer" do
52
+ customer = Conekta::Customer.create(customer_oxxo)
53
+ source = customer.payment_sources.first
54
+
55
+ expect(source.class.to_s).to eq('Conekta::PaymentSource')
56
+ expect(customer.payment_sources.class.to_s).to eq('Conekta::List')
57
+ expect(source.reference.size).to eq(14)
58
+ end
59
+
60
+ it 'successfully creates oxxo recurrent reference for customer' do
61
+ source = customer.create_offline_recurrent_reference(oxxo_source_params)
62
+
63
+ expect(source.class.to_s).to eq("Conekta::PaymentSource")
64
+ expect(customer.payment_sources.class.to_s).to eq("Conekta::List")
65
+ expect(source.reference.size).to eq(14)
66
+ end
67
+
68
+ it "successfully creates shipping contact for customer" do
69
+ shipping_contact =
70
+ customer.create_shipping_contact(shipping_contact_params)
71
+
72
+ expect(shipping_contact.class.to_s).to eq("Conekta::ShippingContact")
73
+ expect(customer.shipping_contacts.class.to_s).to eq("Conekta::List")
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::DiscountLine do
4
+ include_context "API 2.0.0"
5
+ include_context "order"
6
+
7
+ let(:discount_lines) do
8
+ [
9
+ {
10
+ code: "Cupon de descuento",
11
+ type: "loyalty",
12
+ amount: 10
13
+ },
14
+ {
15
+ code: "Cupon de descuento",
16
+ type: "loyalty",
17
+ amount: 5
18
+ }
19
+ ]
20
+ end
21
+
22
+ let(:order) do
23
+ Conekta::Order.create(order_data.merge(discount_lines: discount_lines))
24
+ end
25
+
26
+ let(:discount_line) { order.discount_lines.first }
27
+
28
+ context "deleting discount lines" do
29
+ it "successful discount line delete" do
30
+ discount_line.delete
31
+
32
+ expect(discount_line.deleted).to eq(true)
33
+ end
34
+ end
35
+
36
+ context "updating discount lines" do
37
+ it "successful discount line update" do
38
+ discount_line.update(amount: 11)
39
+
40
+ expect(discount_line.amount).to eq(11)
41
+ end
42
+
43
+ it "unsuccessful discount line update" do
44
+ expect {
45
+ discount_line.update(amount: -1)
46
+ }.to raise_error(Conekta::ParameterValidationError)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Error do
4
+ include_context "API 2.0.0"
5
+
6
+ let(:card) { { cards: ["tok_test_visa_4242"] } }
7
+
8
+ it "test no id error" do
9
+ expect{
10
+ Conekta::Customer.find(nil)
11
+ }.to raise_error(Conekta::Error)
12
+ end
13
+
14
+ it "test no connection error" do
15
+ api_url = Conekta::api_base
16
+ Conekta::api_base = 'http://localhost:3001'
17
+
18
+ expect{
19
+ Conekta::Customer.create(card)
20
+ }.to raise_error(Conekta::NoConnectionError)
21
+
22
+ # cleanup
23
+ Conekta::api_base = api_url
24
+ end
25
+
26
+ it "test api error" do
27
+ expect{
28
+ Conekta::Customer.create({
29
+ cards: {
30
+ 0 => "tok_test_visa_4242"
31
+ }
32
+ })
33
+ }.to raise_error(Conekta::ParameterValidationError)
34
+ end
35
+
36
+ it "test parameter validation error" do
37
+ expect{
38
+ Conekta::Order.create({})
39
+ }.to raise_error(Conekta::ParameterValidationError)
40
+ end
41
+
42
+ it "test resource not found error" do
43
+ expect{
44
+ Conekta::Order.find(1)
45
+ }.to raise_error(Conekta::ResourceNotFoundError)
46
+ end
47
+
48
+ it "test authentication error" do
49
+ api_key = Conekta::api_key
50
+ Conekta::api_key = ""
51
+
52
+ expect{
53
+ Conekta::Customer.create({
54
+ cards: ["tok_test_visa_4242"]
55
+ })
56
+ }.to raise_error(Conekta::AuthenticationError)
57
+
58
+ # cleanup
59
+ Conekta::api_key = api_key
60
+ end
61
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::LineItem do
4
+ include_context "API 2.0.0"
5
+
6
+ let(:line_items) do
7
+ [{
8
+ name: "Box of Cohiba S1s",
9
+ description: "Imported From Mex.",
10
+ unit_price: 35000,
11
+ quantity: 1,
12
+ tags: ["food", "mexican food"]
13
+ },
14
+ {
15
+ name: "Other item",
16
+ description: "other description",
17
+ unit_price: 35000,
18
+ quantity: 1,
19
+ tags: ["food"]
20
+ }]
21
+ end
22
+ let(:order_data) do
23
+ {
24
+ currency: 'mxn',
25
+ line_items: line_items
26
+ }
27
+ end
28
+ let(:order) { Conekta::Order.create(order_data) }
29
+ let(:line_item) { order.line_items.first }
30
+
31
+ context "deleting line items" do
32
+ it "successful line item delete" do
33
+ line_item.delete
34
+
35
+ expect(line_item.deleted).to eq(true)
36
+ end
37
+ end
38
+
39
+ context "updating line items" do
40
+ it "successful line item update" do
41
+ line_item.update(unit_price: 1000)
42
+
43
+ expect(line_item.unit_price).to eq(1000)
44
+ end
45
+
46
+ it "unsuccessful line item update" do
47
+ expect {
48
+ line_item.update(description: nil)
49
+ }.to raise_error(Conekta::ParameterValidationError)
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::List do
4
+
5
+ include_context "API 2.0.0"
6
+
7
+ let(:list) do
8
+ response = JSON.parse(File.read("spec/support/fixtures/orders.json"))
9
+ order_list = Conekta::List.new("Order",response)
10
+ order_list.load_from(response)
11
+ order_list
12
+ end
13
+
14
+ context "moving cursor" do
15
+ it "moves cursor forward" do
16
+ window = Conekta::Order.where({"limit" => 5, "next" => list[9].id})
17
+ expect(window.first.id).to eq(list[10].id)
18
+ window.next(limit: 1)
19
+ expect(window.first.id).to eq(list[15].id)
20
+ end
21
+
22
+ it "moves cursor backwards" do
23
+ window = Conekta::Order.where({"limit" => 5, "next" => list[14].id})
24
+ expect(window.first.id).to eq(list[15].id)
25
+ window.previous(limit: 1)
26
+ expect(window.first.id).to eq(list[14].id)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,291 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Order do
4
+ include_context "API 2.0.0"
5
+
6
+ let(:customer_info) do
7
+ {
8
+ name: "John Constantine",
9
+ phone: "+5213353319758",
10
+ email: "hola@hola.com"
11
+ }
12
+ end
13
+
14
+ let(:customer_data) do
15
+ {
16
+ email: "hola@hola.com",
17
+ name: "John Constantine",
18
+ cards: ["tok_test_visa_4242"]
19
+ }
20
+ end
21
+
22
+ let(:charges) do
23
+ [{
24
+ payment_method: {
25
+ type: "oxxo_cash",
26
+ expires_at: (Time.now + 3600).to_i
27
+ },
28
+ amount: 35000
29
+ }]
30
+ end
31
+
32
+ let(:card_charges) do
33
+ [{
34
+ payment_method: {
35
+ type: "card",
36
+ token_id: "tok_test_visa_4242",
37
+ },
38
+ amount: 35000
39
+ }]
40
+ end
41
+
42
+ let(:line_items) do
43
+ [{
44
+ name: "Box of Cohiba S1s",
45
+ description: "Imported From Mex.",
46
+ unit_price: 35000,
47
+ quantity: 1,
48
+ tags: ["food", "mexican food"]
49
+ }]
50
+ end
51
+
52
+ let(:order_data) do
53
+ {
54
+ currency: 'mxn',
55
+ line_items: line_items,
56
+ metadata: {
57
+ test: true
58
+ }
59
+ }
60
+ end
61
+
62
+ let(:order_data_with_charges) do
63
+ order_data.merge(charges: charges)
64
+ end
65
+
66
+ let(:order_data_with_card_charges) do
67
+ order_data.merge(charges: card_charges)
68
+ end
69
+
70
+ context "creating orders" do
71
+ it "successful order create" do
72
+ order = Conekta::Order.create(order_data)
73
+
74
+ expect(order).to be_a(Conekta::Order)
75
+ expect(order.metadata["test"]).to eq(true)
76
+ end
77
+
78
+ it "unsuccessful order create" do
79
+ expect{
80
+ Conekta::Order.create({})
81
+ }.to raise_error(Conekta::ParameterValidationError)
82
+ end
83
+
84
+ context "with charges" do
85
+ it "successful order create" do
86
+ order = Conekta::Order.create(order_data_with_charges.
87
+ merge(customer_info: customer_info))
88
+
89
+ expect(order).to be_a(Conekta::Order)
90
+ end
91
+
92
+ context "unsuccessful order create" do
93
+ it "with missing customer_info and customer_id" do
94
+ expect{
95
+ Conekta::Order.create(order_data_with_charges)
96
+ }.to raise_error(Conekta::ParameterValidationError)
97
+ end
98
+ end
99
+ end
100
+ end
101
+
102
+ context "updating orders" do
103
+ let(:order) { Conekta::Order.create(order_data) }
104
+
105
+ it "successful order update" do
106
+ order.update(charges: charges, customer_info: customer_info)
107
+
108
+ expect(order.charges).not_to be_empty
109
+ end
110
+
111
+ it "unsuccessful order update" do
112
+ expect{
113
+ order.update(charges: charges)
114
+ }.to raise_error(Conekta::ParameterValidationError)
115
+ end
116
+ end
117
+
118
+ context "creating submodels" do
119
+ let(:line_item_params) do
120
+ {
121
+ name: "Box of Cohiba S1s",
122
+ description: "Imported From Mex.",
123
+ unit_price: 35000,
124
+ quantity: 1,
125
+ tags: ["food", "mexican food"]
126
+ }
127
+ end
128
+
129
+ let(:tax_line_params) do
130
+ {
131
+ description: "IVA",
132
+ amount: 600
133
+ }
134
+ end
135
+
136
+ let(:shipping_line_params) do
137
+ {
138
+ description: "Otro Shipping",
139
+ amount: 40,
140
+ tracking_number: "TRACK124",
141
+ carrier: "USPS",
142
+ method: "Train",
143
+ }
144
+ end
145
+
146
+ let(:discount_line_params) do
147
+ {
148
+ code: "Cupon de descuento",
149
+ type: "loyalty",
150
+ amount: 10
151
+ }
152
+ end
153
+
154
+ let(:charge_params) do
155
+ {
156
+ payment_method: {
157
+ type: "oxxo_cash",
158
+ expires_at: (Time.now + 3600).to_i
159
+ },
160
+ amount: 35000
161
+ }
162
+ end
163
+
164
+ let(:shipping_contact_params) do
165
+ {
166
+ id: "1jap4jmcjnwh34",
167
+ email: "thomas.logan@xmen.org",
168
+ phone: "+5213353319758",
169
+ receiver: "Marvin Fuller",
170
+ between_streets: "Ackerman Crescent",
171
+ address: {
172
+ street1: "250 Alexis St",
173
+ city: "Red Deer",
174
+ state: "Alberta",
175
+ country: "MX",
176
+ postal_code: "78219",
177
+ residential: true
178
+ }
179
+ }
180
+ end
181
+
182
+ let(:order) { Conekta::Order.create(order_data) }
183
+
184
+ it "successfully creates charge for order" do
185
+ other_params = {
186
+ currency: 'mxn',
187
+ customer_info: {
188
+ name: 'John Constantine',
189
+ phone: '+5213353319758',
190
+ email: 'hola@hola.com'
191
+ }
192
+ }
193
+
194
+ order = Conekta::Order.create(order_data.merge(other_params))
195
+ charge = order.create_charge(charge_params)
196
+
197
+ expect(charge.class.to_s).to eq("Conekta::Charge")
198
+ expect(order.charges.class.to_s).to eq("Conekta::List")
199
+ end
200
+
201
+ it "successfully creates line item for order" do
202
+ line_item = order.create_line_item(line_item_params)
203
+
204
+ expect(line_item.class.to_s).to eq("Conekta::LineItem")
205
+ expect(order.line_items.class.to_s).to eq("Conekta::List")
206
+ end
207
+
208
+ it "successfully creates tax line for order" do
209
+ tax_line = order.create_tax_line(tax_line_params)
210
+ new_tax_line = order.create_tax_line(description: "ISR", amount: 2)
211
+
212
+ expect(tax_line.class.to_s).to eq("Conekta::TaxLine")
213
+ expect(order.tax_lines.class.to_s).to eq("Conekta::List")
214
+ expect(order.tax_lines.total).to eq(2)
215
+ end
216
+
217
+ it "successfully creates shipping line for order" do
218
+ shipping_line = order.create_shipping_line(shipping_line_params)
219
+
220
+ expect(shipping_line.class.to_s).to eq("Conekta::ShippingLine")
221
+ expect(order.shipping_lines.class.to_s).to eq("Conekta::List")
222
+ end
223
+
224
+ it "successfully creates discount line for order" do
225
+ discount_line = order.create_discount_line(discount_line_params)
226
+
227
+ discount_line.update({amount: 1000})
228
+
229
+ expect(discount_line.class.to_s).to eq("Conekta::DiscountLine")
230
+ expect(order.discount_lines.class.to_s).to eq("Conekta::List")
231
+ end
232
+
233
+ it "successfully create shipping contact for order" do
234
+ shipping_contact = order.create_shipping_contact(shipping_contact_params)
235
+
236
+ expect(shipping_contact.class.to_s).to eq("Conekta::ShippingContact")
237
+ end
238
+ end
239
+
240
+ context "get" do
241
+ it "successfully gets order" do
242
+ id = Conekta::Order.create(order_data).id
243
+
244
+ order = Conekta::Order.find(id)
245
+
246
+ expect(order).to be_a(Conekta::Order)
247
+ end
248
+
249
+ it "test successful where" do
250
+ orders = Conekta::Order.where
251
+
252
+ expect(orders).to be_a(Conekta::List)
253
+ expect(orders.elements_type).to eq("Order")
254
+ expect(orders.first).to be_a(Conekta::Order)
255
+ end
256
+ end
257
+
258
+ it "successfully captures an order" do
259
+ order = Conekta::Order.create(order_data_with_card_charges.
260
+ merge(customer_info: customer_info, pre_authorize: true))
261
+ expect(order.payment_status).to eq("pre_authorized")
262
+
263
+ order.authorize_capture
264
+
265
+ expect(order.payment_status).to eq("paid")
266
+ end
267
+
268
+ context "refund" do
269
+ let(:order_refund) do
270
+ {
271
+ amount: 35000,
272
+ reason: "requested_by_client"
273
+ }
274
+ end
275
+
276
+ it "test successful refund" do
277
+ order = Conekta::Order.create(order_data_with_card_charges.
278
+ merge(customer_info: customer_info).
279
+ merge(line_items: line_items))
280
+ begin
281
+ order.refund(order_refund)
282
+ rescue Exception => e
283
+ puts e.details.map{|d| d.message}
284
+ end
285
+
286
+ refunded_order = Conekta::Order.find(order.id)
287
+
288
+ expect(refunded_order.payment_status).to eq("refunded")
289
+ end
290
+ end
291
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+ # require 'conekta'
3
+
4
+ describe Conekta::Payee do
5
+ include_context "API 2.0.0"
6
+
7
+ describe 'an instance' do
8
+ let(:payee_attributes) do
9
+ {
10
+ name: "John Doe", email: "j_d@radcorp2.com", phone: "555555555",
11
+ billing_address:{
12
+ company_name: 'Rad Corp',
13
+ tax_id: 'tax121212abc',
14
+ street1: 'Guadalupe 73',
15
+ street2: 'Despacho 32',
16
+ street3: 'Condesa',
17
+ city: 'Cuauhtemoc',
18
+ state: 'DF',
19
+ country: 'MX',
20
+ postal_code: '06100'
21
+ }
22
+ }
23
+ end
24
+
25
+ it 'creates successfully' do
26
+ payee = Conekta::Payee.create(payee_attributes)
27
+ expect(payee).to be_a(Conekta::Payee)
28
+ end
29
+
30
+ describe ':payout_methods' do
31
+ let!(:payee) { Conekta::Payee.create(payee_attributes) }
32
+ let(:bank_attributes) do
33
+ {
34
+ type: "bank_account",
35
+ account_number: '072225008217746674',
36
+ account_holder_name: 'J D - Radcorp'
37
+ }
38
+ end
39
+
40
+ it 'can create payout methods' do
41
+ payout_method = payee.create_destination(bank_attributes)
42
+ expect(payout_method).to be_a(Conekta::Destination)
43
+ # I'm sure this should be a Conekta::PayoutMethod,
44
+ # just not sure why it's reporting back as a Conekta::Method
45
+ end
46
+
47
+ it 'assigns default_payout_method_id to first payout method created' do
48
+ payout_method = payee.create_destination(bank_attributes)
49
+ # refetch the payee object
50
+ payee = Conekta::Payee.find(payout_method.payee_id)
51
+ expect(payee.default_destination_id).to eq(payout_method.id)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::ShippingContact do
4
+ include_context "API 2.0.0"
5
+ include_context "customer"
6
+
7
+ let(:shipping_contacts) do
8
+ [{
9
+ receiver: "John Williams",
10
+ phone: "+5213353319758",
11
+ address: {
12
+ street1: "250 Alexis St",
13
+ city: "Red Deer",
14
+ state: "Alberta",
15
+ country: "CA",
16
+ postal_code: "T4N 0B8",
17
+ }
18
+ },
19
+ {
20
+ receiver: "John Williams",
21
+ phone: "+5213353319758",
22
+ address: {
23
+ street1: "250 Alexis St",
24
+ city: "Red Deer",
25
+ state: "Alberta",
26
+ country: "CA",
27
+ postal_code: "T4N 0B8",
28
+ }
29
+ }]
30
+ end
31
+
32
+ let(:customer) do
33
+ Conekta::Customer.create(customer_data.
34
+ merge(shipping_contacts: shipping_contacts))
35
+ end
36
+
37
+ let(:shipping_contact) { customer.shipping_contacts.first }
38
+
39
+ context "deleting shipping contacts" do
40
+ it "successful shipping contact delete" do
41
+ shipping_contact.delete
42
+
43
+ expect(shipping_contact.deleted).to eq(true)
44
+ end
45
+ end
46
+
47
+ context "updating shipping contacts" do
48
+ it "successful shipping contact update" do
49
+ shipping_contact.update(receiver: "Mario Moreno")
50
+
51
+ expect(shipping_contact.receiver).to eq("Mario Moreno")
52
+ end
53
+
54
+ it "unsuccessful shipping contact update" do
55
+ expect {
56
+ shipping_contact.update(receiver: 123)
57
+ }.to raise_error(Conekta::Error)
58
+ end
59
+ end
60
+ end