conekta_oxxo_handler_spec.rb
2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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