Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Ruby Gems
/
var
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Marcelo
2016-07-13 15:09:35 -0500
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6f36d876f4307a5ce80562f40e6b849cd61a9186
6f36d876
1 parent
f6245313
Builds for 1 pipeline
failed
in 0 seconds
Updates on var specs and gem modifications
Changes
7
Builds
1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
53 additions
and
10 deletions
bin/console
lib/acts_as_chargeable.rb
spec/conekta_handler_spec.rb
spec/mocks/var_database_mock.rb
spec/mocks/var_models_mock.rb
spec/mocks/webhooks_requests.rb
spec/spec_helper.rb
bin/console
View file @
6f36d87
#!/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
...
...
lib/acts_as_chargeable.rb
View file @
6f36d87
...
...
@@ -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
...
...
spec/conekta_handler_spec.rb
View file @
6f36d87
...
...
@@ -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
...
...
spec/mocks/var_database_mock.rb
View file @
6f36d87
...
...
@@ -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
...
...
spec/mocks/var_models_mock.rb
View file @
6f36d87
# 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
...
...
spec/mocks/webhooks_requests.rb
View file @
6f36d87
This diff is collapsed. Click to expand it.
spec/spec_helper.rb
View file @
6f36d87
...
...
@@ -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
...
...
Please
register
or
login
to post a comment