Marcelo
Builds for 1 pipeline failed in 0 seconds

Specs ready to modify var

...@@ -25,7 +25,6 @@ module ActsAsChargeable ...@@ -25,7 +25,6 @@ module ActsAsChargeable
25 25
26 def charge_with_conekta(options) 26 def charge_with_conekta(options)
27 charge = conekta_charge(options) 27 charge = conekta_charge(options)
28 - amount = charge.amount / 100.0
29 update_columns(var_status: charge.status, var_id: charge.id, 28 update_columns(var_status: charge.status, var_id: charge.id,
30 var_service: 'conekta') 29 var_service: 'conekta')
31 update_conekta_barcode(charge) if options[:conekta_type] == 'oxxo' 30 update_conekta_barcode(charge) if options[:conekta_type] == 'oxxo'
......
...@@ -2,11 +2,56 @@ ...@@ -2,11 +2,56 @@
2 require 'spec_helper' 2 require 'spec_helper'
3 3
4 describe ActsAsChargeable do 4 describe ActsAsChargeable do
5 + before(:each) do
6 + Product.delete_all
7 + end
8 +
5 context 'as a module' do 9 context 'as a module' do
6 it 'can be implemented in ActiveRecord' do 10 it 'can be implemented in ActiveRecord' do
7 expect(Product).to respond_to(:acts_as_chargeable) 11 expect(Product).to respond_to(:acts_as_chargeable)
8 end 12 end
9 end 13 end
14 +
15 + context 'processing charges' do
16 + it ': oxxo' do
17 + product = Product.create
18 + conekta_object_mock = JSON.parse(
19 + ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
20 + object_class: OpenStruct)
21 + allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
22 +
23 + Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
24 +
25 + expect(product.var_id).to eq conekta_object_mock.id
26 + expect(product.var_service).to eq 'conekta'
27 + expect(product.var_status).to eq 'pending_payment'
28 + expect(product.var_paid_amount).to eq conekta_object_mock.amount
29 + expect(product.var_fee).to eq conekta_object_mock.fee
30 + expect(product.var_payment_method).to eq 'OXXO'
31 + expect(product.var_payment_at).to eq(Time.strptime conekta_object_mock.paid_at.to_s, '%s')
32 + end
33 +
34 + it ': card' do
35 + product = Product.create
36 + conekta_object_mock = JSON.parse(
37 + ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT,
38 + object_class: OpenStruct)
39 + allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
40 +
41 + Var.create_charge(:conekta, product, { conekta_type: 'card' })
42 +
43 + expect(product.var_id).to eq conekta_object_mock.id
44 + expect(product.var_service).to eq 'conekta'
45 + expect(product.var_status).to eq 'paid'
46 + expect(product.var_paid_amount).to eq conekta_object_mock.amount
47 + expect(product.var_fee).to eq conekta_object_mock.fee
48 + expect(product.var_payment_method).to eq 'Card'
49 + expect(product.var_payment_at).to eq(Time.strptime conekta_object_mock.paid_at.to_s, '%s')
50 + end
51 +
52 + xit ': spei' do
53 + end
54 + end
10 end 55 end
11 56
12 # Tests for mock on Chargeable class 57 # Tests for mock on Chargeable class
......
...@@ -2,66 +2,36 @@ ...@@ -2,66 +2,36 @@
2 require 'spec_helper' 2 require 'spec_helper'
3 3
4 describe Var::ConektaCardHandler do 4 describe Var::ConektaCardHandler do
5 - let!(:product) { 5 + before(:each) do
6 - # product = instance_double('Product') 6 + Product.delete_all
7 - # allow(product).to receive(:charge_with).and_return(:success) 7 + end
8 - # product
9 - Product.create
10 - }
11 -
12 - let!(:var_mock) {
13 - var = class_double('Var')
14 - allow(var).to receive(:find_charge).and_return(product)
15 - var
16 - }
17 -
18 it 'processes card charge' do 8 it 'processes card charge' do
9 + product = Product.create
19 conekta_object_mock = JSON.parse( 10 conekta_object_mock = JSON.parse(
20 ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT, 11 ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT,
21 object_class: OpenStruct) 12 object_class: OpenStruct)
22 allow(product).to receive(:conekta_charge).and_return(conekta_object_mock) 13 allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
23 14
15 + # No se checan updates por que esto ya está testeado
24 Var.create_charge(:conekta, product, { conekta_type: 'card' }) 16 Var.create_charge(:conekta, product, { conekta_type: 'card' })
25 17
26 - expect(product.var_id).to eq conekta_object_mock.id
27 - expect(product.var_service).to eq 'conekta'
28 - expect(product.var_status).to eq('paid')
29 -
30 - # Se está testeando crear un cargo y recibir webook
31 - # Analizar separación
32 Var::ConektaCardHandler.analyze(WebHookPostRequest::CARD_CHARGE_CREATED) 18 Var::ConektaCardHandler.analyze(WebHookPostRequest::CARD_CHARGE_CREATED)
33 -
34 - # TODO: Revisar que si entra un cargo, se debe actualizar status a pending_payment
35 - # Pero falta desarrollo (Hacer un overwrite del método process_charge en el handler de card)
36 expect(product.var_id).to eq conekta_object_mock.id 19 expect(product.var_id).to eq conekta_object_mock.id
37 - expect(product.var_service).to eq 'conekta' 20 + expect(product.var_status).to eq 'pending_payment'
38 - expect(product.var_status).to eq('pending_payment')
39 end 21 end
40 22
41 it 'processes card payment' do 23 it 'processes card payment' do
24 + product = Product.create
42 conekta_object_mock = JSON.parse( 25 conekta_object_mock = JSON.parse(
43 ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT, 26 ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT,
44 object_class: OpenStruct) 27 object_class: OpenStruct)
45 allow(product).to receive(:conekta_charge).and_return(conekta_object_mock) 28 allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
46 29
30 + # No se checan updates por que esto ya está testeado
47 Var.create_charge(:conekta, product, { conekta_type: 'card' }) 31 Var.create_charge(:conekta, product, { conekta_type: 'card' })
48 32
49 - expect(product.var_id).to eq conekta_object_mock.id
50 - expect(product.var_service).to eq 'conekta'
51 - expect(product.var_status).to eq('paid')
52 -
53 Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_PAID) 33 Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_PAID)
54 -
55 expect(product.var_id).to eq conekta_object_mock.id 34 expect(product.var_id).to eq conekta_object_mock.id
56 - expect(product.var_service).to eq 'conekta' 35 + expect(product.var_status).to eq 'paid'
57 - expect(product.var_status).to eq('paid')
58 - expect(product.var_paid_amount).to_not be_nil
59 end 36 end
60 end 37 end
...\ No newline at end of file ...\ No newline at end of file
61 - # Conekta.config do |c|
62 - # c.locale = :en
63 - # # Llave de Sandbox
64 - # c.api_key = 'key_mGmC5ry7s71JSLCv2WcxUg'
65 - # c::PUBLIC_KEY = 'key_K6WVsv82RrEHGocJQcoEqPw'
66 - # end
67 - # Var.create_charge(:conekta, product, { conekta_type: 'card', card_token: 'tok_ZGFFi3sv18a3duJWR' })
......
1 -# frozen_string_literal: true
2 -require 'spec_helper'
3 -
4 -describe Var::ConektaHandler do
5 - let!(:product) {
6 - # product = instance_double('Product')
7 - # allow(product).to receive(:charge_with).and_return(:success)
8 - # product
9 - Product.create
10 - }
11 -
12 - let!(:var_mock) {
13 - var = class_double('Var')
14 - allow(var).to receive(:find_charge).and_return(product)
15 - var
16 - }
17 -
18 - # TODO: Probar errores en Var.create_charge
19 - it 'processes oxxo charge' do
20 - allow_any_instance_of(Product).to receive(:conekta_charge).and_return(
21 - JSON.parse(ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, object_class: OpenStruct))
22 - charge = Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
23 - Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
24 - expect(product.var_status).to eq('pending_payment')
25 - end
26 -
27 - it 'processes card charge' do
28 - allow_any_instance_of(Product).to receive(:conekta_charge).and_return(
29 - JSON.parse(ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT, object_class: OpenStruct))
30 - charge = Var.create_charge(:conekta, product, {"conekta_type": "card"})
31 - Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_CREATED)
32 - expect(product.var_status).to eq('pending_payment')
33 - end
34 -
35 - xit 'processes spei charge' do
36 - end
37 -
38 - it 'processes payout' do
39 - end
40 -
41 - it 'processes oxxo payment' do
42 - Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
43 - expect(product.var_status).to eq('paid')
44 -
45 - end
46 -
47 - it 'processes card payment' do
48 - end
49 -
50 - it 'processes oxxo payment' do
51 - end
52 -
53 - xit 'processes spei payment' do
54 - end
55 -
56 - it 'processes payout' do
57 - end
58 -end
1 # frozen_string_literal: true 1 # frozen_string_literal: true
2 require 'spec_helper' 2 require 'spec_helper'
3 3
4 -describe Var::ConektaHandler do 4 +describe Var::ConektaOxxoHandler do
5 before(:each) do 5 before(:each) do
6 Product.delete_all 6 Product.delete_all
7 end 7 end
...@@ -11,19 +11,13 @@ describe Var::ConektaHandler do ...@@ -11,19 +11,13 @@ describe Var::ConektaHandler do
11 conekta_object_mock = JSON.parse( 11 conekta_object_mock = JSON.parse(
12 ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, 12 ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
13 object_class: OpenStruct) 13 object_class: OpenStruct)
14 - allow_any_instance_of(Product).to receive(:conekta_charge) 14 + allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
15 - .and_return(conekta_object_mock)
16 15
17 Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) 16 Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
18 17
19 - expect(product.var_id).to eq conekta_object_mock.id
20 - expect(product.var_service).to eq 'conekta'
21 - expect(product.var_status).to eq('pending_payment')
22 -
23 Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) 18 Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
24 expect(product.var_id).to eq conekta_object_mock.id 19 expect(product.var_id).to eq conekta_object_mock.id
25 - expect(product.var_service).to eq 'conekta' 20 + expect(product.var_status).to eq 'pending_payment'
26 - expect(product.var_status).to eq('pending_payment')
27 end 21 end
28 22
29 it 'processes oxxo payment' do 23 it 'processes oxxo payment' do
...@@ -31,24 +25,11 @@ describe Var::ConektaHandler do ...@@ -31,24 +25,11 @@ describe Var::ConektaHandler do
31 conekta_object_mock = JSON.parse( 25 conekta_object_mock = JSON.parse(
32 ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, 26 ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
33 object_class: OpenStruct) 27 object_class: OpenStruct)
34 - allow_any_instance_of(Product).to receive(:conekta_charge) 28 + allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
35 - .and_return(conekta_object_mock)
36 29
37 Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) 30 Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
38 -
39 - expect(product.var_id).to eq conekta_object_mock.id
40 - expect(product.var_service).to eq 'conekta'
41 - expect(product.var_status).to eq('pending_payment')
42 -
43 Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID) 31 Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID)
44 - product.reload
45 -
46 expect(product.var_id).to eq conekta_object_mock.id 32 expect(product.var_id).to eq conekta_object_mock.id
47 - expect(product.var_service).to eq 'conekta' 33 + expect(product.var_status).to eq 'paid'
48 - expect(product.var_status).to eq('paid')
49 - expect(product.var_paid_amount).to_not be_nil
50 - expect(product.var_fee).to_not be_nil
51 - expect(product.var_payment_method).to eq('OXXO')
52 - expect(product.var_payment_at).to_not be_nil
53 end 34 end
54 end 35 end
......