conekta_card_handler_spec.rb 1.27 KB
# frozen_string_literal: true
require 'spec_helper'

describe Var::ConektaCardHandler do
  before(:each) do
    Product.delete_all
  end
  it 'processes card charge' do
    product = Product.create
    conekta_object_mock = JSON.parse(
      ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT,
      object_class: OpenStruct)
  	allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)

    # No se checan updates por que esto ya está testeado
  	Var.create_charge(:conekta, product, { conekta_type: 'card' })

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

  it 'processes card payment' do
    product = Product.create
    conekta_object_mock = JSON.parse(
      ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT,
      object_class: OpenStruct)
  	allow(product).to receive(:conekta_charge).and_return(conekta_object_mock)

    # No se checan updates por que esto ya está testeado
  	Var.create_charge(:conekta, product, { conekta_type: 'card' })

  	Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_PAID)
    expect(product.var_id).to eq conekta_object_mock.id
  	expect(product.var_status).to eq 'paid'
  end
end