conekta-tiempometa 2.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
data/locales/en.yml ADDED
@@ -0,0 +1,9 @@
1
+ # encoding: UTF-8
2
+ en:
3
+ error:
4
+ resource:
5
+ id: 'Could not get the id of %{resource} instance.'
6
+ id_purchaser : 'There was an error. Please contact system administrator.'
7
+ requestor:
8
+ connection: 'Could not connect to %{base}.'
9
+ connection_purchaser: 'Could not connect to payment system.'
data/locales/es.yml ADDED
@@ -0,0 +1,10 @@
1
+ # encoding: UTF-8
2
+ es:
3
+ error:
4
+ resource:
5
+ id: 'No se pudo obtener el id de la instancia de %{resource}.'
6
+ id_purchaser: 'Hubo un error. Favor de contactar al administrador del sistema.'
7
+ requestor:
8
+ connection: 'No se pudo conectar a %{base}.'
9
+ connection_purchaser: 'No se pudo conectar al sistema de pagos.'
10
+
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Card do
4
+ include_context "API 1.0.0"
5
+ let(:customer_data) do
6
+ {
7
+ email: "hola@hola.com",
8
+ name: "John Constantine",
9
+ cards: ["tok_test_visa_4242"]
10
+ }
11
+ end
12
+
13
+ let(:customer) do
14
+ Conekta::Customer.create(customer_data)
15
+ end
16
+
17
+ let(:card) { customer.cards.first }
18
+
19
+ context "deleting cards" do
20
+ it "successful card delete" do
21
+ card.delete
22
+
23
+ expect(card.deleted).to eq(true)
24
+ end
25
+ end
26
+
27
+ context "updating cards" do
28
+ it "successful card update" do
29
+ card.update(active: false)
30
+
31
+ expect(card.active).to eq(false)
32
+ end
33
+
34
+ it "unsuccessful card update" do
35
+ expect {
36
+ card.update(token: "tok_test_visa_4241")
37
+ }.to raise_error(Conekta::ParameterValidationError)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,152 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Charge do
4
+ include_context "API 1.0.0"
5
+
6
+ let(:payment_method) do
7
+ {
8
+ amount: 2000,
9
+ currency: 'mxn',
10
+ description: 'Some desc',
11
+ details: {
12
+ name: "Wolverine",
13
+ email: "logan.thomas@xmen.org",
14
+ phone: "403-342-0642",
15
+ line_items: [{
16
+ name: "Shades",
17
+ description: "Imported From Mex.",
18
+ unit_price: 20000,
19
+ quantity: 1,
20
+ sku: "cohb_s1",
21
+ category: "eyewear"
22
+ }]
23
+ }
24
+ }
25
+ end
26
+
27
+ let(:invalid_payment_method) do
28
+ {
29
+ amount: 10,
30
+ currency: 'mxn',
31
+ description: 'Some desc',
32
+ details: {
33
+ name: "Wolverine",
34
+ email: "logan.thomas@xmen.org",
35
+ phone: "403-342-0642",
36
+ line_items: [{
37
+ name: "Shades",
38
+ description: "Imported From Mex.",
39
+ unit_price: 20000,
40
+ quantity: 1,
41
+ sku: "cohb_s1",
42
+ category: "eyewear"
43
+ }]
44
+ }
45
+ }
46
+ end
47
+
48
+ let(:card) { { card: 'tok_test_visa_4242' } }
49
+
50
+ context "get" do
51
+ it "succesfully gets charge" do
52
+ transaction = Conekta::Charge.create(payment_method.merge(card))
53
+ expect(transaction.status).to eq("paid")
54
+ charge = Conekta::Charge.find(transaction.id)
55
+ expect(charge).to be_a(Conekta::Charge)
56
+ end
57
+
58
+ it "test succesful where" do
59
+ charges = Conekta::Charge.where
60
+ charge = charges.first
61
+ expect(charge).to be_a(Conekta::Charge)
62
+ end
63
+ it "test succesful where status 'pending_payment'" do
64
+ charges = Conekta::Charge.where({status: 'pending_payment'})
65
+ charges.map{|index, charge|
66
+ expect(charge.status).to eq("pending_payment")
67
+ }
68
+ end
69
+ it "test succesful where status 'paid'" do
70
+ charges = Conekta::Charge.where({status: 'paid'})
71
+ charges.map{|index, charge|
72
+ expect(charge.status).to eq("paid")
73
+ }
74
+ end
75
+ end
76
+
77
+ context "creating charges" do
78
+ it "tests succesful bank payment" do
79
+ bank = { bank: { 'type' => 'banorte' } }
80
+ bank_payment = Conekta::Charge.create(payment_method.merge(bank))
81
+ expect(bank_payment.status).to eq("pending_payment")
82
+ end
83
+
84
+ it "tests succesful card payment" do
85
+ card_payment = Conekta::Charge.create(payment_method.merge(card))
86
+ expect(card_payment.status).to eq("paid")
87
+ end
88
+
89
+ it "tests succesful oxxo payment" do
90
+ oxxo = { cash: { 'type' => 'oxxo' } }
91
+ cash_payment = Conekta::Charge.create(payment_method.merge(oxxo))
92
+ expect(cash_payment.status).to eq("pending_payment")
93
+ end
94
+
95
+ it "tests succesful card payment capture" do
96
+ # pm = @valid_payment_method
97
+ # card = @valid_visa_card
98
+ capture = { capture: false }
99
+ transaction = Conekta::Charge.create(
100
+ payment_method.merge(card).merge(capture)
101
+ )
102
+ expect(transaction.status).to eq("pre_authorized")
103
+ transaction.capture
104
+ expect(transaction.status).to eq("paid")
105
+ end
106
+
107
+ it "test unsuccesful create" do
108
+ expect {
109
+ Conekta::Charge.create(invalid_payment_method.merge(card))
110
+ }.to raise_error(
111
+ Conekta::ParameterValidationError,
112
+ "The minimum for card payments is 3 pesos. Check that the amount " +
113
+ "is in cents as explained in the documentation."
114
+ )
115
+ end
116
+ end
117
+
118
+ context "refunding charges" do
119
+ it "test susccesful refund" do
120
+ transaction = Conekta::Charge.create(payment_method.merge(card))
121
+ expect(transaction.status).to eq("paid")
122
+ transaction.refund
123
+ expect(transaction.status).to eq("refunded")
124
+ end
125
+
126
+ it "test unsusccesful refund" do
127
+ transaction = Conekta::Charge.create(payment_method.merge(card))
128
+ expect(transaction.status).to eq("paid")
129
+
130
+ expect { transaction.refund(3000) }.to raise_error(
131
+ Conekta::ProcessingError,
132
+ "The amount to refund exceeds the charge total."
133
+ )
134
+ end
135
+ end
136
+
137
+ context 'capturing charges' do
138
+ it 'captures an existing charge' do
139
+ amount_before_capture = 2000
140
+ amount_after_capture = 1000
141
+ capture = { capture: false }
142
+ transaction = Conekta::Charge.create(
143
+ payment_method.merge(card).merge(capture)
144
+ )
145
+ expect(transaction.status).to eq('pre_authorized')
146
+ expect(transaction.amount).to be == amount_before_capture
147
+ transaction.capture(1000)
148
+ expect(transaction.amount).to be == amount_after_capture
149
+ expect(transaction.status).to eq("paid")
150
+ end
151
+ end
152
+ end
@@ -0,0 +1,147 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Customer do
4
+ include_context "API 1.0.0"
5
+ let(:customer_data) { { :cards => ["tok_test_visa_4242"], email: "test@gmail.com", name: "Mario" } }
6
+
7
+ context "creating customers" do
8
+ it "successful customer create" do
9
+ customer = Conekta::Customer.create(customer_data)
10
+ expect(customer).to be_a(Conekta::Customer)
11
+ end
12
+
13
+ it "unsuccessful customer create" do
14
+ expect { Conekta::Customer.create(
15
+ :cards => ["tok_test_visa_4241"],
16
+ :name => "Mario",
17
+ :email => "test@gmail.com"
18
+ ) }.to raise_error(
19
+ Conekta::ParameterValidationError,
20
+ "The token does not exist."
21
+ )
22
+ end
23
+ end
24
+
25
+ context "getting customers" do
26
+ it "successful customer get" do
27
+ transaction = Conekta::Customer.create(customer_data)
28
+ customer = Conekta::Customer.find(transaction.id)
29
+ expect(customer).to be_a(Conekta::Customer)
30
+ end
31
+
32
+ it "successful customer where" do
33
+ customers = Conekta::Customer.where
34
+ expect(customers.class.class_name).to eq("ConektaObject")
35
+ expect(customers.first).to be_a(Conekta::Customer)
36
+ end
37
+ end
38
+
39
+ context "updating customers" do
40
+ it "successful customer update" do
41
+ customer = Conekta::Customer.create({
42
+ :cards => ["tok_test_visa_4242"],
43
+ :name => "Mario",
44
+ :email => "test@gmail.com"
45
+ })
46
+ customer.update({name: 'Logan', email: 'logan@x-men.org'})
47
+ expect(customer.name).to eq('Logan')
48
+ end
49
+ end
50
+
51
+ context "deleting customers" do
52
+ it "successful customer delete" do
53
+ customer = Conekta::Customer.create(customer_data)
54
+ customer.delete
55
+ expect(customer.deleted).to eq(true)
56
+ end
57
+ end
58
+
59
+ context "adding cards" do
60
+ let!(:customer) { Conekta::Customer.create(customer_data) }
61
+
62
+ it "add card to customer" do
63
+ card = customer.create_card(:token => 'tok_test_visa_1881')
64
+ expect(customer.cards.count).to eq(2)
65
+ expect(customer.cards.last.last4).to eq('1881')
66
+ end
67
+
68
+ it "test delete card" do
69
+ card = customer.cards[0].delete
70
+ expect(card.deleted).to eq(true)
71
+ end
72
+
73
+ it "test update card" do
74
+ customer.cards[0].update(token: 'tok_test_mastercard_4444', active: false)
75
+ expect(customer.cards[0].last4).to eq('4444')
76
+ end
77
+ end
78
+
79
+ context "managing subscriptions" do
80
+ let!(:customer) { Conekta::Customer.create(customer_data) }
81
+
82
+ context "create" do
83
+ it "test succesful create subscription" do
84
+ subscription = customer.create_subscription({plan: 'gold-plan'})
85
+ expect(subscription.class.class_name).to eq('Subscription')
86
+ end
87
+
88
+ it "test unsuccesful create subscription" do
89
+ expect { customer.create_subscription({plan: 'unexistent-plan'}) }.to \
90
+ raise_error(
91
+ Conekta::ResourceNotFoundError,
92
+ 'The object Plan "unexistent-plan" could not be found.'
93
+ )
94
+ end
95
+ end
96
+
97
+ context "update" do
98
+ it "test succesful update subscription" do
99
+ subscription = customer.create_subscription({plan: 'gold-plan'})
100
+ plan = find_or_create_plan('gold-plan2')
101
+
102
+ subscription.update({plan: plan.id})
103
+ expect(subscription.plan_id).to eq('gold-plan2')
104
+ end
105
+ end
106
+
107
+ context "pause/resume" do
108
+ let!(:subscription) { customer.create_subscription({plan: 'gold-plan'}) }
109
+
110
+ it "test succesful pause subscription" do
111
+ subscription.pause
112
+ expect(subscription.status).to eq('paused')
113
+ end
114
+
115
+ it "test succesful resume subscription" do
116
+ subscription.pause
117
+ expect(subscription.status).to eq('paused')
118
+ subscription.resume
119
+ expect(subscription.status).to_not eq('paused')
120
+ end
121
+ end
122
+
123
+ context "cancel" do
124
+ it "test succesful cancel subscription" do
125
+ subscription = customer.create_subscription({plan: 'gold-plan'})
126
+ subscription.cancel
127
+ expect(subscription.status).to eq('canceled')
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ def find_or_create_plan(plan_id)
134
+ plan = Conekta::Plan.find(plan_id)
135
+ rescue Conekta::Error => e
136
+ plan = Conekta::Plan.create({
137
+ id: plan_id,
138
+ name: "Gold Plan",
139
+ amount: 10000,
140
+ currency: "MXN",
141
+ interval: "month",
142
+ frequency: 1,
143
+ trial_period_days: 15,
144
+ expiry_count: 12
145
+ })
146
+ return plan
147
+ end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Error do
4
+ include_context "API 1.0.0"
5
+ let(:card) { { cards: ["tok_test_visa_4242"] } }
6
+
7
+ it "test no id error" do
8
+ expect { Conekta::Charge.find(nil) }.to raise_error(
9
+ Conekta::Error, "Could not get the id of Charge instance."
10
+ )
11
+ end
12
+
13
+ it "test no connection error" do
14
+ api_url = Conekta::api_base
15
+ Conekta::api_base = 'http://localhost:3001'
16
+
17
+ expect { Conekta::Customer.create(card) }.to raise_error(
18
+ Conekta::NoConnectionError, "Could not connect to http://localhost:3001."
19
+ )
20
+
21
+ # cleanup
22
+ Conekta::api_base = api_url
23
+ end
24
+
25
+ it "test api error" do
26
+ expect { Conekta::Customer.create({ cards: {0=>"tok_test_visa_4242"} }) }.to \
27
+ raise_error(Conekta::ParameterValidationError)
28
+ end
29
+
30
+ it "test authentication error" do
31
+ api_key = Conekta::api_key
32
+ Conekta::api_key = ""
33
+ expect { Conekta::Customer.create({ cards: ["tok_test_visa_4242"] }) }.to \
34
+ raise_error(Conekta::AuthenticationError)
35
+
36
+ # cleanup
37
+ Conekta.api_key = api_key
38
+ end
39
+
40
+ it "test parameter validation error" do
41
+ expect { Conekta::Plan.create({id: 'gold-plan'}) }.to raise_error(
42
+ Conekta::ParameterValidationError
43
+ )
44
+ end
45
+
46
+ it "test processing error" do
47
+ charge = nil
48
+ charges = Conekta::Charge.where()
49
+ charges.each do |(k,v)|
50
+ if v.status == "pre_authorized"
51
+ charge = v
52
+ break
53
+ end
54
+ end
55
+ begin
56
+ if charge
57
+ charge.capture
58
+ end
59
+ rescue Conekta::Error => e
60
+ expect(e.class_name).to eq("ProcessingError")
61
+ end
62
+ end
63
+
64
+ it "test resource not found error" do
65
+ expect { Conekta::Charge.find(1) }.to raise_error(
66
+ Conekta::ResourceNotFoundError
67
+ )
68
+ end
69
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Event do
4
+ include_context "API 1.0.0"
5
+ it "test successful where" do
6
+ events = Conekta::Event.where
7
+ expect(events.class_name).to eq("ConektaObject")
8
+ expect(events[0].class_name).to eq("Event")
9
+ if !events[0].webhook_logs.empty?
10
+ expect(events[0].webhook_logs.first.class_name).to eq("WebhookLog")
11
+ end
12
+ end
13
+
14
+ it "test successful find" do
15
+ events = Conekta::Event.where
16
+ e = events.first
17
+
18
+ event = Conekta::Event.find(e.id)
19
+
20
+ expect(event).to be_a(Conekta::Event)
21
+ expect(event.class_name).to eq("Event")
22
+ if !events[0].webhook_logs.empty?
23
+ expect(events[0].webhook_logs.first.class_name).to eq("WebhookLog")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Log do
4
+ include_context "API 1.0.0"
5
+ it "test successful where" do
6
+ events = Conekta::Log.where
7
+ expect(events.class_name).to eq("ConektaObject")
8
+ expect(events[0].class_name).to eq("Log")
9
+ end
10
+
11
+ it "test successful find" do
12
+ events = Conekta::Log.where
13
+ e = events.first
14
+
15
+ event = Conekta::Log.find(e.id)
16
+
17
+ expect(event).to be_a(Conekta::Log)
18
+ expect(event.class_name).to eq("Log")
19
+ end
20
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Payout do
4
+ include_context "API 1.0.0"
5
+ let(:payee_attributes) do
6
+ {
7
+ name: "John Doe", email: "j_d@radcorp.com", phone: "555555555",
8
+ billing_address:{
9
+ company_name: 'Rad Corp',
10
+ tax_id: 'tax121212abc',
11
+ street1: 'Guadalupe 73',
12
+ street2: 'Despacho 32',
13
+ street3: 'Condesa',
14
+ city: 'Cuauhtemoc',
15
+ state: 'DF',
16
+ country: 'MX',
17
+ zip: '06100'
18
+ }
19
+ }
20
+ end
21
+
22
+ let(:bank_attributes) do
23
+ {
24
+ account_number: '032180000118359719',
25
+ account_holder: 'J D - Radcorp',
26
+ description: 'Conekta To JD',
27
+ statement_description: 'Conekta To JD 111111111',
28
+ statement_reference: '111111111'
29
+ }
30
+ end
31
+
32
+ describe 'an instance' do
33
+ before do
34
+ payee = Conekta::Payee.create(payee_attributes)
35
+ payout_method = payee.create_payout_method(bank_attributes)
36
+
37
+ @payee = Conekta::Payee.find(payee.id)
38
+ end
39
+
40
+ it 'is created successfully' do
41
+ payout = Conekta::Payout.create(
42
+ amount: 5000, currency: "MXN", payee: @payee.id
43
+ )
44
+ expect(payout).to be_a(Conekta::Payout)
45
+ end
46
+
47
+ it 'can be retrieved by :id' do
48
+ transaction = Conekta::Payout.create(
49
+ amount: 5000, currency: "MXN", payee: @payee.id
50
+ )
51
+ # refetch payout
52
+ payout = Conekta::Payout.find(transaction.id)
53
+ expect(payout).to be_a(Conekta::Payout)
54
+ end
55
+
56
+ it 'has a :method attribute' do
57
+ expect(@payee.payout_methods.first).to be_a(Conekta::Method)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Plan do
4
+ include_context "API 1.0.0"
5
+ context "get/where" do
6
+ it "test succesful get plan" do
7
+ plans = Conekta::Plan.where
8
+ p = plans.first;
9
+ plan = Conekta::Plan.find(p.id)
10
+ expect(plan).to be_a(Conekta::Plan)
11
+ end
12
+
13
+ it "test succesful where" do
14
+ plans = Conekta::Plan.where
15
+ expect(plans.class_name).to eq("ConektaObject")
16
+ expect(plans.first).to be_a(Conekta::Plan)
17
+ end
18
+ end
19
+
20
+ context "creating plans" do
21
+ it "test succesful create plan" do
22
+ plan = Conekta::Plan.create(
23
+ id: ((0...8).map { (65 + rand(26)).chr }.join),
24
+ name: "Gold Plan",
25
+ amount: 10000,
26
+ currency: "MXN",
27
+ interval: "month",
28
+ frequency: 10,
29
+ trial_period_days: 15,
30
+ expiry_count: 12
31
+ )
32
+ expect(plan).to be_a(Conekta::Plan)
33
+ end
34
+ end
35
+
36
+ context "updating plans" do
37
+ it "test update plan" do
38
+ plans = Conekta::Plan.where
39
+ plan = plans.first
40
+ plan.update({name: "Silver Plan"})
41
+ expect(plan.name).to eq("Silver Plan")
42
+ end
43
+ end
44
+
45
+ context "deleting plans" do
46
+ it "test delete plan" do
47
+ plans = Conekta::Plan.where
48
+ plan = plans.first
49
+ plan.delete
50
+ expect(plan.deleted).to eq(true)
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Token do
4
+ include_context "API 1.0.0"
5
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Conekta::Webhook do
4
+ include_context "API 1.0.0"
5
+ let!(:events) do
6
+ {
7
+ events: [
8
+ "charge.created", "charge.paid", "charge.under_fraud_review",
9
+ "charge.fraudulent", "charge.refunded", "charge.created", "customer.created",
10
+ "customer.updated", "customer.deleted", "webhook.created", "webhook.updated",
11
+ "webhook.deleted", "charge.chargeback.created", "charge.chargeback.updated",
12
+ "charge.chargeback.under_review", "charge.chargeback.lost", "charge.chargeback.won",
13
+ "payout.created", "payout.retrying", "payout.paid_out", "payout.failed",
14
+ "plan.created", "plan.updated", "plan.deleted", "subscription.created",
15
+ "subscription.paused", "subscription.resumed", "subscription.canceled",
16
+ "subscription.expired", "subscription.updated", "subscription.paid",
17
+ "subscription.payment_failed", "payee.created", "payee.updated",
18
+ "payee.deleted", "payee.payout_method.created",
19
+ "payee.payout_method.updated", "payee.payout_method.deleted"
20
+ ]
21
+ }
22
+ end
23
+ let(:url) { { url: "http://localhost:3000/my_listener" } }
24
+
25
+ # This spec was commented to avoid webhook creation saturation.
26
+ #
27
+ # it "succesfully gets charge" do
28
+ # webhook = Conekta::Webhook.create(url.merge(events))
29
+ # expect(webhook.url).to eq(url[:url])
30
+ # webhook = Conekta::Webhook.find(webhook.id)
31
+ # expect(webhook.url).to eq(url[:url])
32
+ # webhook.update({url: "http://localhost:2000/my_listener"})
33
+ # expect(webhook.url).to eq("http://localhost:2000/my_listener")
34
+ # webhook.delete
35
+ # end
36
+ end