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-14 16:53:28 -0500
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9dcb13802b2c1cd2984a73030cd9366ddbb0dc92
9dcb1380
1 parent
51dba50a
Builds for 1 pipeline
failed
in 0 seconds
Specs ready to modify var
Changes
5
Builds
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
59 additions
and
122 deletions
lib/acts_as_chargeable.rb
spec/acts_as_chargeable_spec.rb
spec/conekta_card_handler_spec.rb
spec/conekta_handler_spec.rb
spec/conekta_oxxo_handler_spec.rb
lib/acts_as_chargeable.rb
View file @
9dcb138
...
...
@@ -25,7 +25,6 @@ module ActsAsChargeable
def
charge_with_conekta
(
options
)
charge
=
conekta_charge
(
options
)
amount
=
charge
.
amount
/
100
.
0
update_columns
(
var_status:
charge
.
status
,
var_id:
charge
.
id
,
var_service:
'conekta'
)
update_conekta_barcode
(
charge
)
if
options
[
:conekta_type
]
==
'oxxo'
...
...
spec/acts_as_chargeable_spec.rb
View file @
9dcb138
...
...
@@ -2,11 +2,56 @@
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
...
...
spec/conekta_card_handler_spec.rb
View file @
9dcb138
...
...
@@ -2,66 +2,36 @@
require
'spec_helper'
describe
Var
::
ConektaCardHandler
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
}
before
(
:each
)
do
Product
.
delete_all
end
it
'processes card charge'
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
)
# No se checan updates por que esto ya está testeado
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'
)
# Se está testeando crear un cargo y recibir webook
# Analizar separación
Var
::
ConektaCardHandler
.
analyze
(
WebHookPostRequest
::
CARD_CHARGE_CREATED
)
# TODO: Revisar que si entra un cargo, se debe actualizar status a pending_payment
# Pero falta desarrollo (Hacer un overwrite del método process_charge en el handler de card)
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_status
).
to
eq
'pending_payment'
end
it
'processes card payment'
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
)
# No se checan updates por que esto ya está testeado
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'
)
Var
::
ConektaHandler
.
analyze
(
WebHookPostRequest
::
CARD_CHARGE_PAID
)
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_status
).
to
eq
'paid'
end
end
\ No newline at end of file
# Conekta.config do |c|
# c.locale = :en
# # Llave de Sandbox
# c.api_key = 'key_mGmC5ry7s71JSLCv2WcxUg'
# c::PUBLIC_KEY = 'key_K6WVsv82RrEHGocJQcoEqPw'
# end
# Var.create_charge(:conekta, product, { conekta_type: 'card', card_token: 'tok_ZGFFi3sv18a3duJWR' })
...
...
spec/conekta_handler_spec.rb
deleted
100644 → 0
View file @
51dba50
# 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
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'
)
end
it
'processes card payment'
do
end
it
'processes oxxo payment'
do
end
xit
'processes spei payment'
do
end
it
'processes payout'
do
end
end
spec/conekta_oxxo_handler_spec.rb
View file @
9dcb138
# frozen_string_literal: true
require
'spec_helper'
describe
Var
::
ConektaHandler
do
describe
Var
::
Conekta
Oxxo
Handler
do
before
(
:each
)
do
Product
.
delete_all
end
...
...
@@ -11,19 +11,13 @@ describe Var::ConektaHandler 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
)
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'
)
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'
)
expect
(
product
.
var_status
).
to
eq
'pending_payment'
end
it
'processes oxxo payment'
do
...
...
@@ -31,24 +25,11 @@ describe Var::ConektaHandler 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
)
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'
)
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
expect
(
product
.
var_status
).
to
eq
'paid'
end
end
...
...
Please
register
or
login
to post a comment