Builds for
1 pipeline
failed
in
0 seconds
Specs ready to modify var
Showing
5 changed files
with
59 additions
and
122 deletions
| ... | @@ -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' }) | ... | ... |
spec/conekta_handler_spec.rb
deleted
100644 → 0
| 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 | ... | ... |
-
Please register or login to post a comment