Marcelo
Builds for 1 pipeline failed in 0 seconds

Finished OXXO charges and payments specs

# frozen_string_literal: true
require 'spec_helper'
describe Var::ConektaHandler do
let!(:product) {
# product = instance_double('Product')
# allow(product).to receive(:charge_with).and_return(:success)
# product
Product.create
}
let!(:var_mock) {
var = class_double('Var')
allow(var).to receive(:find_charge).and_return(product)
var
}
# TODO: Probar errores en Var.create_charge
it 'processes oxxo charge' do
conekta_object_mock = JSON.parse(
ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
object_class: OpenStruct)
allow_any_instance_of(Product).to receive(:conekta_charge)
.and_return(conekta_object_mock)
Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
expect(product.var_id).to eq conekta_object_mock.id
expect(product.var_service).to eq 'conekta'
expect(product.var_status).to eq('pending_payment')
Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
expect(product.var_id).to eq conekta_object_mock.id
expect(product.var_service).to eq 'conekta'
expect(product.var_status).to eq('pending_payment')
end
it 'processes oxxo payment' do
conekta_object_mock = JSON.parse(
ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
object_class: OpenStruct)
allow_any_instance_of(Product).to receive(:conekta_charge)
.and_return(conekta_object_mock)
Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
expect(product.var_id).to eq conekta_object_mock.id
expect(product.var_service).to eq 'conekta'
expect(product.var_status).to eq('pending_payment')
Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID)
product.reload
expect(product.var_id).to eq conekta_object_mock.id
expect(product.var_service).to eq 'conekta'
expect(product.var_status).to eq('paid')
expect(product.var_paid_amount).to_not be_nil
expect(product.var_fee).to_not be_nil
expect(product.var_payment_method).to eq('OXXO')
expect(product.var_payment_at).to_not be_nil
end
end