Tweaked the subscription handler to act more like the payment handler when a card charge fails. It returns 402.

This commit is contained in:
Scott Erickson 2014-12-02 20:40:33 -08:00
parent cd3bb690f4
commit aea1e39b58
2 changed files with 20 additions and 2 deletions

View file

@ -38,8 +38,11 @@ class SubscriptionHandler extends Handler
)
),
(err) =>
@logSubscriptionError(req, 'Stripe customer creation error. '+err)
return done({res: 'Database error.', code: 500})
if err.type in ['StripeCardError', 'StripeInvalidRequestError']
done({res: 'Card error', code: 402})
else
@logSubscriptionError(req, 'Stripe customer creation error. '+err)
return done({res: 'Database error.', code: 500})
)
else

View file

@ -95,6 +95,21 @@ describe '/db/user, editing stripe property', ->
joeData = null
firstSubscriptionID = null
it 'returns client error when a token fails to charge', (done) ->
stripe.tokens.create {
card: { number: '4000000000000002', exp_month: 12, exp_year: 2020, cvc: '123' }
}, (err, token) ->
stripeTokenID = token.id
loginJoe (joe) ->
joeData = joe.toObject()
joeData.stripe = {
token: stripeTokenID
planID: 'basic'
}
request.put {uri: userURL, json: joeData }, (err, res, body) ->
expect(res.statusCode).toBe(402)
done()
it 'creates a subscription when you put a token and plan', (done) ->
stripe.tokens.create {
card: { number: '4242424242424242', exp_month: 12, exp_year: 2020, cvc: '123' }