Builds for
1 pipeline
failed
in
0 seconds
Updates on var specs and gem modifications
Showing
7 changed files
with
53 additions
and
10 deletions
1 | #!/usr/bin/env ruby | 1 | #!/usr/bin/env ruby |
2 | # frozen_string_literal: true | 2 | # frozen_string_literal: true |
3 | - | 3 | +require 'pry' |
4 | require 'bundler/setup' | 4 | require 'bundler/setup' |
5 | require 'active_record' | 5 | require 'active_record' |
6 | require 'active_support' | 6 | require 'active_support' |
... | @@ -9,9 +9,10 @@ require 'var' | ... | @@ -9,9 +9,10 @@ require 'var' |
9 | require_relative '../spec/mocks/var_database_mock.rb' | 9 | require_relative '../spec/mocks/var_database_mock.rb' |
10 | require_relative '../spec/mocks/var_models_mock.rb' | 10 | require_relative '../spec/mocks/var_models_mock.rb' |
11 | 11 | ||
12 | +Time.zone = 'America/Monterrey' | ||
12 | ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | 13 | ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') |
13 | ActiveRecord::Schema.verbose = false | 14 | ActiveRecord::Schema.verbose = false |
14 | VarDatabaseMock.setup_db | 15 | VarDatabaseMock.setup_db |
15 | 16 | ||
16 | -require 'pry' | 17 | + |
17 | Pry.start | 18 | Pry.start | ... | ... |
... | @@ -26,11 +26,8 @@ module ActsAsChargeable | ... | @@ -26,11 +26,8 @@ module ActsAsChargeable |
26 | def charge_with_conekta(options) | 26 | def charge_with_conekta(options) |
27 | charge = conekta_charge(options) | 27 | charge = conekta_charge(options) |
28 | amount = charge.amount / 100.0 | 28 | amount = charge.amount / 100.0 |
29 | - fee = charge.fee / 100.0 | ||
30 | update_columns(var_status: charge.status, var_id: charge.id, | 29 | update_columns(var_status: charge.status, var_id: charge.id, |
31 | - var_service: 'conekta', var_fee: fee, | 30 | + var_service: 'conekta') |
32 | - var_paid_amount: amount, | ||
33 | - var_payment_method: charge.payment_method.object) | ||
34 | update_conekta_barcode(charge) if options[:conekta_type] == 'oxxo' | 31 | update_conekta_barcode(charge) if options[:conekta_type] == 'oxxo' |
35 | if var_payed? | 32 | if var_payed? |
36 | time = Time.zone.now | 33 | time = Time.zone.now |
... | @@ -63,7 +60,7 @@ module ActsAsChargeable | ... | @@ -63,7 +60,7 @@ module ActsAsChargeable |
63 | { card: options[:card_token] } | 60 | { card: options[:card_token] } |
64 | elsif options[:conekta_type] == 'oxxo' | 61 | elsif options[:conekta_type] == 'oxxo' |
65 | { cash: { type: 'oxxo', | 62 | { cash: { type: 'oxxo', |
66 | - expires_at: (Time.zone.today + 3.days).strftime('%Y-%m-%d') } } | 63 | + expires_at: (Time.zone.now + 3.days).strftime('%Y-%m-%d') } } |
67 | end | 64 | end |
68 | end | 65 | end |
69 | 66 | ... | ... |
... | @@ -15,6 +15,29 @@ describe Var::ConektaHandler do | ... | @@ -15,6 +15,29 @@ describe Var::ConektaHandler do |
15 | var | 15 | var |
16 | } | 16 | } |
17 | 17 | ||
18 | + # TODO: Probar errores en Var.create_charge | ||
19 | + it 'processes oxxo charge' do | ||
20 | + allow_any_instance_of(Product).to receive(:conekta_charge).and_return( | ||
21 | + JSON.parse(ConektaChargeCreateObject::OXXO_CREATE_CHARGE_OBJECT, object_class: OpenStruct)) | ||
22 | + charge = Var.create_charge(:conekta, product, {"conekta_type": "oxxo"}) | ||
23 | + Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) | ||
24 | + expect(product.var_status).to eq('pending_payment') | ||
25 | + end | ||
26 | + | ||
27 | + it 'processes card charge' do | ||
28 | + allow_any_instance_of(Product).to receive(:conekta_charge).and_return( | ||
29 | + JSON.parse(ConektaChargeCreateObject::CARD_CREATE_CHARGE_OBJECT, object_class: OpenStruct)) | ||
30 | + charge = Var.create_charge(:conekta, product, {"conekta_type": "card"}) | ||
31 | + Var::ConektaHandler.analyze(WebHookPostRequest::CARD_CHARGE_CREATED) | ||
32 | + expect(product.var_status).to eq('pending_payment') | ||
33 | + end | ||
34 | + | ||
35 | + xit 'processes spei charge' do | ||
36 | + end | ||
37 | + | ||
38 | + it 'processes payout' do | ||
39 | + end | ||
40 | + | ||
18 | it 'processes oxxo payment' do | 41 | it 'processes oxxo payment' do |
19 | Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) | 42 | Var::ConektaHandler.analyze(WebHookPostRequest::OXXO_CHARGE_CREATED) |
20 | expect(product.var_status).to eq('paid') | 43 | expect(product.var_status).to eq('paid') |
... | @@ -27,6 +50,9 @@ describe Var::ConektaHandler do | ... | @@ -27,6 +50,9 @@ describe Var::ConektaHandler do |
27 | it 'processes oxxo payment' do | 50 | it 'processes oxxo payment' do |
28 | end | 51 | end |
29 | 52 | ||
53 | + xit 'processes spei payment' do | ||
54 | + end | ||
55 | + | ||
30 | it 'processes payout' do | 56 | it 'processes payout' do |
31 | end | 57 | end |
32 | end | 58 | end | ... | ... |
... | @@ -5,7 +5,7 @@ class VarDatabaseMock | ... | @@ -5,7 +5,7 @@ class VarDatabaseMock |
5 | ActiveRecord::Schema.define(version: 1) do | 5 | ActiveRecord::Schema.define(version: 1) do |
6 | create_table :products do |t| | 6 | create_table :products do |t| |
7 | t.string :code | 7 | t.string :code |
8 | - | 8 | + t.string :name |
9 | t.string :var_status, default: 'pending' | 9 | t.string :var_status, default: 'pending' |
10 | t.string :var_barcode_url | 10 | t.string :var_barcode_url |
11 | t.string :var_barcode | 11 | t.string :var_barcode | ... | ... |
1 | # frozen_string_literal: true | 1 | # frozen_string_literal: true |
2 | class Product < ActiveRecord::Base | 2 | class Product < ActiveRecord::Base |
3 | - acts_as_chargeable | 3 | + acts_as_chargeable conekta: { description: :description, |
4 | + amount: :amount, email: :buyer_mail, | ||
5 | + reference_id: :id } | ||
6 | + def description | ||
7 | + "Producto cool" | ||
8 | + end | ||
9 | + | ||
10 | + def amount | ||
11 | + 134.00 | ||
12 | + end | ||
13 | + | ||
14 | + def buyer_mail | ||
15 | + "compradordelproducto@mimail.com" | ||
16 | + end | ||
17 | + | ||
18 | + def name | ||
19 | + "Nombre del producto" | ||
20 | + end | ||
4 | end | 21 | end | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -7,8 +7,10 @@ require 'var' | ... | @@ -7,8 +7,10 @@ require 'var' |
7 | require 'mocks/var_database_mock' | 7 | require 'mocks/var_database_mock' |
8 | require 'mocks/var_models_mock' | 8 | require 'mocks/var_models_mock' |
9 | require 'mocks/webhooks_requests' | 9 | require 'mocks/webhooks_requests' |
10 | +require 'mocks/conekta_charge_create_objects' | ||
10 | 11 | ||
12 | +Time.zone = 'America/Monterrey' | ||
11 | ActiveRecord::Base.establish_connection(adapter: 'sqlite3', | 13 | ActiveRecord::Base.establish_connection(adapter: 'sqlite3', |
12 | database: ':memory:') | 14 | database: ':memory:') |
13 | ActiveRecord::Schema.verbose = false | 15 | ActiveRecord::Schema.verbose = false |
14 | -VarDatabaseMock.setup_db | 16 | +VarDatabaseMock.setup_db |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment