Reduce server Stripe subscription tests during Travis CI
This commit is contained in:
parent
b13504eeb5
commit
d947bdd520
1 changed files with 593 additions and 592 deletions
|
@ -538,44 +538,6 @@ describe 'Subscriptions', ->
|
|||
expect(subscription?.cancel_at_period_end).toEqual(true)
|
||||
done()
|
||||
|
||||
it 'Admin subscribes self with valid prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 1, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
subscribeUser user1, null, prepaid.code, ->
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
expect(prepaid.get('maxRedeemers')).toEqual(1)
|
||||
expect(prepaid.get('redeemers')[0].userID).toEqual(user1.get('_id'))
|
||||
expect(prepaid.get('redeemers')[0].date).toBeLessThan(new Date())
|
||||
done()
|
||||
|
||||
it 'Admin subscribes self with valid prepaid twice', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 2, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
prepaid.set 'redeemers', [{userID: user1.get('_id'), date: new Date()}]
|
||||
prepaid.save (err) ->
|
||||
expect(err).toBeNull()
|
||||
requestBody = user1.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = prepaid.get('code')
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(403)
|
||||
done()
|
||||
|
||||
it 'User subscribes, deletes themselves, subscription ends', (done) ->
|
||||
stripe.tokens.create {
|
||||
card: { number: '4242424242424242', exp_month: 12, exp_year: 2020, cvc: '123' }
|
||||
|
@ -601,22 +563,7 @@ describe 'Subscriptions', ->
|
|||
expect(res.statusCode).toEqual(200)
|
||||
done()
|
||||
|
||||
it 'Admin subscribes self with invalid prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
requestBody = user1.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = 'MattMatt'
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(404)
|
||||
done()
|
||||
|
||||
it 'User2 subscribes with used prepaid', (done) ->
|
||||
it 'Subscribe with prepaid, then delete', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
|
@ -625,34 +572,32 @@ describe 'Subscriptions', ->
|
|||
createPrepaid 'subscription', 1, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
subscribeUser user1, null, prepaid.code, ->
|
||||
loginNewUser (user2) ->
|
||||
requestBody = user2.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = prepaid.code
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(403)
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
expect(prepaid.get('maxRedeemers')).toEqual(1)
|
||||
expect(prepaid.get('redeemers')[0].userID).toEqual(user1.get('_id'))
|
||||
expect(prepaid.get('redeemers')[0].date).toBeLessThan(new Date())
|
||||
done()
|
||||
User.findById user1.id, (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
unsubscribeUser user1, ->
|
||||
User.findById user1.id, (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
stripeInfo = user1.get('stripe')
|
||||
expect(stripeInfo.prepaidCode).toEqual(prepaid.get('code'))
|
||||
|
||||
it 'User2 subscribes with same active prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
# Delete subscription
|
||||
stripe.customers.retrieveSubscription stripeInfo.customerID, stripeInfo.subscriptionID, (err, subscription) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 2, (err, res, prepaid) ->
|
||||
event = _.cloneDeep(customerSubscriptionDeletedSampleEvent)
|
||||
event.data.object = subscription
|
||||
request.post {uri: webhookURL, json: event}, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
subscribeUser user1, null, prepaid.code, ->
|
||||
loginNewUser (user2) ->
|
||||
subscribeUser user2, null, prepaid.code, ->
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
User.findById user1.id, (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(prepaid.get('redeemers').length).toEqual(2)
|
||||
stripeInfo = user1.get('stripe')
|
||||
expect(stripeInfo.planID).toBeUndefined()
|
||||
expect(stripeInfo.prepaidCode).toBeUndefined()
|
||||
expect(stripeInfo.subscriptionID).toBeUndefined()
|
||||
done()
|
||||
|
||||
it 'Subscribe normally, subscribe with valid prepaid', (done) ->
|
||||
|
@ -685,6 +630,7 @@ describe 'Subscriptions', ->
|
|||
expect(subscription.discount?.coupon?.id).toEqual('free')
|
||||
done()
|
||||
|
||||
unless TRAVIS
|
||||
it 'Subscribe with coupon, subscribe with valid prepaid', (done) ->
|
||||
stripe.tokens.create {
|
||||
card: { number: '4242424242424242', exp_month: 12, exp_year: 2020, cvc: '123' }
|
||||
|
@ -739,7 +685,46 @@ describe 'Subscriptions', ->
|
|||
expect(user1.get('stripe').prepaidCode).toEqual(prepaid.get('code'))
|
||||
done()
|
||||
|
||||
it 'Subscribe with prepaid, then delete', (done) ->
|
||||
it 'User2 subscribes with used prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 1, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
subscribeUser user1, null, prepaid.code, ->
|
||||
loginNewUser (user2) ->
|
||||
requestBody = user2.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = prepaid.code
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(403)
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
expect(prepaid.get('redeemers')[0].userID).toEqual(user1.get('_id'))
|
||||
expect(prepaid.get('redeemers')[0].date).toBeLessThan(new Date())
|
||||
done()
|
||||
|
||||
it 'User2 subscribes with same active prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 2, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
subscribeUser user1, null, prepaid.code, ->
|
||||
loginNewUser (user2) ->
|
||||
subscribeUser user2, null, prepaid.code, ->
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
expect(prepaid.get('redeemers').length).toEqual(2)
|
||||
done()
|
||||
|
||||
it 'Admin subscribes self with valid prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
|
@ -753,27 +738,43 @@ describe 'Subscriptions', ->
|
|||
expect(prepaid.get('maxRedeemers')).toEqual(1)
|
||||
expect(prepaid.get('redeemers')[0].userID).toEqual(user1.get('_id'))
|
||||
expect(prepaid.get('redeemers')[0].date).toBeLessThan(new Date())
|
||||
User.findById user1.id, (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
unsubscribeUser user1, ->
|
||||
User.findById user1.id, (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
stripeInfo = user1.get('stripe')
|
||||
expect(stripeInfo.prepaidCode).toEqual(prepaid.get('code'))
|
||||
done()
|
||||
|
||||
# Delete subscription
|
||||
stripe.customers.retrieveSubscription stripeInfo.customerID, stripeInfo.subscriptionID, (err, subscription) ->
|
||||
it 'Admin subscribes self with valid prepaid twice', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
event = _.cloneDeep(customerSubscriptionDeletedSampleEvent)
|
||||
event.data.object = subscription
|
||||
request.post {uri: webhookURL, json: event}, (err, res, body) ->
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
createPrepaid 'subscription', 2, (err, res, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
User.findById user1.id, (err, user1) ->
|
||||
Prepaid.findById prepaid._id, (err, prepaid) ->
|
||||
expect(err).toBeNull()
|
||||
stripeInfo = user1.get('stripe')
|
||||
expect(stripeInfo.planID).toBeUndefined()
|
||||
expect(stripeInfo.prepaidCode).toBeUndefined()
|
||||
expect(stripeInfo.subscriptionID).toBeUndefined()
|
||||
prepaid.set 'redeemers', [{userID: user1.get('_id'), date: new Date()}]
|
||||
prepaid.save (err) ->
|
||||
expect(err).toBeNull()
|
||||
requestBody = user1.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = prepaid.get('code')
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(403)
|
||||
done()
|
||||
|
||||
it 'Admin subscribes self with invalid prepaid', (done) ->
|
||||
loginNewUser (user1) ->
|
||||
user1.set('permissions', ['admin'])
|
||||
user1.save (err, user1) ->
|
||||
expect(err).toBeNull()
|
||||
expect(user1.isAdmin()).toEqual(true)
|
||||
requestBody = user1.toObject()
|
||||
requestBody.stripe =
|
||||
planID: 'basic'
|
||||
requestBody.stripe.prepaidCode = 'MattMatt'
|
||||
request.put {uri: userURL, json: requestBody, headers: headers }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(404)
|
||||
done()
|
||||
|
||||
describe 'Sponsored', ->
|
||||
|
@ -786,6 +787,7 @@ describe 'Subscriptions', ->
|
|||
subscribeRecipients user1, [user2], token, (updatedUser) ->
|
||||
verifySponsorship user1.id, user2.id, done
|
||||
|
||||
unless TRAVIS
|
||||
it 'Recipient user delete unsubscribes', (done) ->
|
||||
stripe.tokens.create {
|
||||
card: { number: '4242424242424242', exp_month: 12, exp_year: 2020, cvc: '123' }
|
||||
|
@ -1246,7 +1248,6 @@ describe 'Subscriptions', ->
|
|||
expect(subscription.quantity).toEqual(0)
|
||||
done()
|
||||
|
||||
unless TRAVIS
|
||||
it 'Subscribed user1 subscribes 3 users, unsubscribes 2, themselves, then 1', (done) ->
|
||||
recipientCount = 3
|
||||
recipientsToVerify = [0, 1, 2]
|
||||
|
|
Reference in a new issue