Builds for
1 pipeline
failed
in
0 seconds
Finished OXXO charges and payments specs
Showing
1 changed file
with
62 additions
and
0 deletions
spec/conekta_oxxo_handler_spec.rb
0 → 100644
| 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 | + conekta_object_mock = JSON.parse( | ||
| 21 | + ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, | ||
| 22 | + object_class: OpenStruct) | ||
| 23 | + allow_any_instance_of(Product).to receive(:conekta_charge) | ||
| 24 | + .and_return(conekta_object_mock) | ||
| 25 | + | ||
| 26 | + Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) | ||
| 27 | + | ||
| 28 | + expect(product.var_id).to eq conekta_object_mock.id | ||
| 29 | + expect(product.var_service).to eq 'conekta' | ||
| 30 | + expect(product.var_status).to eq('pending_payment') | ||
| 31 | + | ||
| 32 | + Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) | ||
| 33 | + expect(product.var_id).to eq conekta_object_mock.id | ||
| 34 | + expect(product.var_service).to eq 'conekta' | ||
| 35 | + expect(product.var_status).to eq('pending_payment') | ||
| 36 | + end | ||
| 37 | + | ||
| 38 | + it 'processes oxxo payment' do | ||
| 39 | + conekta_object_mock = JSON.parse( | ||
| 40 | + ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, | ||
| 41 | + object_class: OpenStruct) | ||
| 42 | + allow_any_instance_of(Product).to receive(:conekta_charge) | ||
| 43 | + .and_return(conekta_object_mock) | ||
| 44 | + | ||
| 45 | + Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) | ||
| 46 | + | ||
| 47 | + expect(product.var_id).to eq conekta_object_mock.id | ||
| 48 | + expect(product.var_service).to eq 'conekta' | ||
| 49 | + expect(product.var_status).to eq('pending_payment') | ||
| 50 | + | ||
| 51 | + Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID) | ||
| 52 | + product.reload | ||
| 53 | + | ||
| 54 | + expect(product.var_id).to eq conekta_object_mock.id | ||
| 55 | + expect(product.var_service).to eq 'conekta' | ||
| 56 | + expect(product.var_status).to eq('paid') | ||
| 57 | + expect(product.var_paid_amount).to_not be_nil | ||
| 58 | + expect(product.var_fee).to_not be_nil | ||
| 59 | + expect(product.var_payment_method).to eq('OXXO') | ||
| 60 | + expect(product.var_payment_at).to_not be_nil | ||
| 61 | + end | ||
| 62 | +end |
-
Please register or login to post a comment