Marcelo
Builds for 1 pipeline failed in 0 seconds

Updates on var specs and gem modifications

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'pry'
require 'bundler/setup'
require 'active_record'
require 'active_support'
......@@ -9,9 +9,10 @@ require 'var'
require_relative '../spec/mocks/var_database_mock.rb'
require_relative '../spec/mocks/var_models_mock.rb'
Time.zone = 'America/Monterrey'
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Schema.verbose = false
VarDatabaseMock.setup_db
require 'pry'
Pry.start
......
......@@ -26,11 +26,8 @@ module ActsAsChargeable
def charge_with_conekta(options)
charge = conekta_charge(options)
amount = charge.amount / 100.0
fee = charge.fee / 100.0
update_columns(var_status: charge.status, var_id: charge.id,
var_service: 'conekta', var_fee: fee,
var_paid_amount: amount,
var_payment_method: charge.payment_method.object)
var_service: 'conekta')
update_conekta_barcode(charge) if options[:conekta_type] == 'oxxo'
if var_payed?
time = Time.zone.now
......@@ -63,7 +60,7 @@ module ActsAsChargeable
{ card: options[:card_token] }
elsif options[:conekta_type] == 'oxxo'
{ cash: { type: 'oxxo',
expires_at: (Time.zone.today + 3.days).strftime('%Y-%m-%d') } }
expires_at: (Time.zone.now + 3.days).strftime('%Y-%m-%d') } }
end
end
......
......@@ -15,6 +15,29 @@ describe Var::ConektaHandler do
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')
......@@ -27,6 +50,9 @@ describe Var::ConektaHandler do
it 'processes oxxo payment' do
end
xit 'processes spei payment' do
end
it 'processes payout' do
end
end
......
......@@ -5,7 +5,7 @@ class VarDatabaseMock
ActiveRecord::Schema.define(version: 1) do
create_table :products do |t|
t.string :code
t.string :name
t.string :var_status, default: 'pending'
t.string :var_barcode_url
t.string :var_barcode
......
# frozen_string_literal: true
class Product < ActiveRecord::Base
acts_as_chargeable
acts_as_chargeable conekta: { description: :description,
amount: :amount, email: :buyer_mail,
reference_id: :id }
def description
"Producto cool"
end
def amount
134.00
end
def buyer_mail
"compradordelproducto@mimail.com"
end
def name
"Nombre del producto"
end
end
......
This diff is collapsed. Click to expand it.
......@@ -7,8 +7,10 @@ require 'var'
require 'mocks/var_database_mock'
require 'mocks/var_models_mock'
require 'mocks/webhooks_requests'
require 'mocks/conekta_charge_create_objects'
Time.zone = 'America/Monterrey'
ActiveRecord::Base.establish_connection(adapter: 'sqlite3',
database: ':memory:')
ActiveRecord::Schema.verbose = false
VarDatabaseMock.setup_db
VarDatabaseMock.setup_db
\ No newline at end of file
......