conekta_handler_spec.rb 1.6 KB
# 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
  	allow_any_instance_of(Product).to receive(:conekta_charge).and_return(
  		JSON.parse(ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, object_class: OpenStruct))
  	charge = Var.create_charge(:conekta, product, {"conekta_type": "oxxo"})
  	Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
  	expect(product.var_status).to eq('pending_payment')
  end

  it 'processes card charge' do
  	allow_any_instance_of(Product).to receive(:conekta_charge).and_return(
  		JSON.parse(ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT, object_class: OpenStruct))
  	charge = Var.create_charge(:conekta, product, {"conekta_type": "card"})
  	Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_CREATED)
  	expect(product.var_status).to eq('pending_payment')
  end

  xit 'processes spei charge' do
  end

  it 'processes payout' do
  end

  it 'processes oxxo payment' do
    Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED)
    expect(product.var_status).to eq('paid')

  end

  it 'processes card payment' do
  end

  it 'processes oxxo payment' do
  end

  xit 'processes spei payment' do
  end

  it 'processes payout' do
  end
end