conekta_oxxo_handler_spec.rb 1.23 KB
# frozen_string_literal: true
require 'spec_helper'

describe Var::ConektaOxxoHandler do
  before(:each) do
    Product.delete_all
  end
  # TODO: Probar errores en Var.create_charge
  it 'processes oxxo charge' do
    product = Product.create
    conekta_object_mock = JSON.parse(
      ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
      object_class: OpenStruct)
  	allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
    Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})

    Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
    expect(product.var_id).to eq conekta_object_mock.id
    expect(product.var_status).to eq 'pending_payment'
  end

  it 'processes oxxo payment' do
    product = Product.create
    conekta_object_mock = JSON.parse(
      ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT,
      object_class: OpenStruct)
    allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)
    
    Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
    Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID)
    product.reload
    expect(product.var_id).to eq conekta_object_mock.id
    expect(product.var_status).to eq 'paid'
  end
end