Builds for
1 pipeline
failed
in
0 seconds
Finished OXXO charges and payments specs
Showing
1 changed file
with
62 additions
and
0 deletions
spec/conekta_oxxo_handler_spec.rb
0 → 100644
1 | +# frozen_string_literal: true | ||
2 | +require 'spec_helper' | ||
3 | + | ||
4 | +describe Var::ConektaHandler do | ||
5 | + let!(:product) { | ||
6 | + # product = instance_double('Product') | ||
7 | + # allow(product).to receive(:charge_with).and_return(:success) | ||
8 | + # product | ||
9 | + Product.create | ||
10 | + } | ||
11 | + | ||
12 | + let!(:var_mock) { | ||
13 | + var = class_double('Var') | ||
14 | + allow(var).to receive(:find_charge).and_return(product) | ||
15 | + var | ||
16 | + } | ||
17 | + | ||
18 | + # TODO: Probar errores en Var.create_charge | ||
19 | + it 'processes oxxo charge' do | ||
20 | + conekta_object_mock = JSON.parse( | ||
21 | + ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, | ||
22 | + object_class: OpenStruct) | ||
23 | + allow_any_instance_of(Product).to receive(:conekta_charge) | ||
24 | + .and_return(conekta_object_mock) | ||
25 | + | ||
26 | + Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) | ||
27 | + | ||
28 | + expect(product.var_id).to eq conekta_object_mock.id | ||
29 | + expect(product.var_service).to eq 'conekta' | ||
30 | + expect(product.var_status).to eq('pending_payment') | ||
31 | + | ||
32 | + Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) | ||
33 | + expect(product.var_id).to eq conekta_object_mock.id | ||
34 | + expect(product.var_service).to eq 'conekta' | ||
35 | + expect(product.var_status).to eq('pending_payment') | ||
36 | + end | ||
37 | + | ||
38 | + it 'processes oxxo payment' do | ||
39 | + conekta_object_mock = JSON.parse( | ||
40 | + ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, | ||
41 | + object_class: OpenStruct) | ||
42 | + allow_any_instance_of(Product).to receive(:conekta_charge) | ||
43 | + .and_return(conekta_object_mock) | ||
44 | + | ||
45 | + Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) | ||
46 | + | ||
47 | + expect(product.var_id).to eq conekta_object_mock.id | ||
48 | + expect(product.var_service).to eq 'conekta' | ||
49 | + expect(product.var_status).to eq('pending_payment') | ||
50 | + | ||
51 | + Var::ConektaOxxoHandler.analyze(WebHookPostRequest::OXXO_CHARGE_PAID) | ||
52 | + product.reload | ||
53 | + | ||
54 | + expect(product.var_id).to eq conekta_object_mock.id | ||
55 | + expect(product.var_service).to eq 'conekta' | ||
56 | + expect(product.var_status).to eq('paid') | ||
57 | + expect(product.var_paid_amount).to_not be_nil | ||
58 | + expect(product.var_fee).to_not be_nil | ||
59 | + expect(product.var_payment_method).to eq('OXXO') | ||
60 | + expect(product.var_payment_at).to_not be_nil | ||
61 | + end | ||
62 | +end |
-
Please register or login to post a comment