acts_as_chargeable_spec.rb
2.83 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# frozen_string_literal: true
require 'spec_helper'
describe ActsAsChargeable do
before(:each) do
Product.delete_all
end
context 'as a module' do
it 'can be implemented in ActiveRecord' do
expect(Product).to respond_to(:acts_as_chargeable)
end
end
context 'processing charges' do
it ': oxxo' 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"})
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'
expect(product.var_paid_amount).to eq conekta_object_mock.amount
expect(product.var_fee).to eq conekta_object_mock.fee
expect(product.var_payment_method).to eq 'OXXO'
expect(product.var_payment_at).to eq(Time.strptime conekta_object_mock.paid_at.to_s, '%s')
end
it ': card' 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)
Var.create_charge(:conekta, product, { conekta_type: 'card' })
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 eq conekta_object_mock.amount
expect(product.var_fee).to eq conekta_object_mock.fee
expect(product.var_payment_method).to eq 'Card'
expect(product.var_payment_at).to eq(Time.strptime conekta_object_mock.paid_at.to_s, '%s')
end
xit ': spei' do
end
end
end
# Tests for mock on Chargeable class
describe Product do
it { is_expected.to respond_to(:charge_with) }
it { is_expected.to respond_to(:charge_with_conekta) }
it { is_expected.to respond_to(:conekta_charge) }
it { is_expected.to respond_to(:conekta_type_of_charge) }
it { is_expected.to respond_to(:update_conekta_barcode) }
it { is_expected.to respond_to(:manual_charge) }
it { is_expected.to respond_to(:manual_discharge) }
it { is_expected.to respond_to(:find_charge) }
it { is_expected.to respond_to(:charged?) }
it { is_expected.to respond_to(:find_conekta_charge) }
it { is_expected.to respond_to(:instance_support?) }
it { is_expected.to respond_to(:sync) }
it { is_expected.to respond_to(:conekta_attributes) }
it { is_expected.to respond_to(:paypal_attributes) }
it { is_expected.to respond_to(:var_payed?) }
it { is_expected.to respond_to(:cancel_oxxo_payment) }
it { is_expected.to respond_to(:var_expired_by) }
end