|
|
@@ -4,7 +4,7 @@ require('chai').should()
|
|
|
sinon = require('sinon')
|
|
|
modulePath = require('path').join __dirname, '../../../../app/js/Features/Referal/ReferalAllocator.js'
|
|
|
|
|
|
-describe 'Referal allocator', ->
|
|
|
+describe 'Referalallocator', ->
|
|
|
|
|
|
beforeEach ->
|
|
|
@ReferalAllocator = SandboxedModule.require modulePath, requires:
|
|
|
@@ -75,7 +75,6 @@ describe 'Referal allocator', ->
|
|
|
@callback.called.should.equal true
|
|
|
|
|
|
describe "assignBonus", ->
|
|
|
- describe "when user does not have a subscription", ->
|
|
|
beforeEach ->
|
|
|
@refered_user_count = 3
|
|
|
@Settings.bonus_features =
|
|
|
@@ -90,14 +89,8 @@ describe 'Referal allocator', ->
|
|
|
|
|
|
@User.findOne = sinon.stub().callsArgWith 1, null,stubbedUser
|
|
|
@User.update = sinon.stub().callsArgWith 2, null
|
|
|
- @SubscriptionLocator.getUsersSubscription = sinon.stub().callsArgWith 1, null, null
|
|
|
@ReferalAllocator.assignBonus @user_id, @callback
|
|
|
|
|
|
- it "should get the users subscription", ->
|
|
|
- @SubscriptionLocator.getUsersSubscription
|
|
|
- .calledWith(@user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
it "should get the users number of refered user", ->
|
|
|
@User.findOne
|
|
|
.calledWith(_id: @user_id)
|
|
|
@@ -116,52 +109,7 @@ describe 'Referal allocator', ->
|
|
|
|
|
|
it "should call the callback", ->
|
|
|
@callback.called.should.equal true
|
|
|
-
|
|
|
- describe "when user does not have a recurlySubscription_id", ->
|
|
|
- beforeEach ->
|
|
|
- @refered_user_count = 4
|
|
|
- @Settings.bonus_features =
|
|
|
- "2":
|
|
|
- collaborators: 2
|
|
|
- dropbox: false
|
|
|
- versioning: false
|
|
|
- "5":
|
|
|
- collaborators: 5
|
|
|
- dropbox: true
|
|
|
- versioning: false
|
|
|
- "3":
|
|
|
- collaborators: 3
|
|
|
- dropbox: false
|
|
|
- versioning: false
|
|
|
- stubbedUser = { refered_user_count: @refered_user_count, features:{collaborators:1, dropbox:false, versioning:false} }
|
|
|
- @User.findOne = sinon.stub().callsArgWith 1, null, stubbedUser
|
|
|
- @User.update = sinon.stub().callsArgWith 2, null
|
|
|
- @SubscriptionLocator.getUsersSubscription = sinon.stub().callsArgWith 1, null, {}
|
|
|
- @ReferalAllocator.assignBonus @user_id, @callback
|
|
|
-
|
|
|
- it "should get the users subscription", ->
|
|
|
- @SubscriptionLocator.getUsersSubscription
|
|
|
- .calledWith(@user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
- it "should get the users number of refered user", ->
|
|
|
- @User.findOne
|
|
|
- .calledWith(_id: @user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
- it "should update the user to bonus features with the closest level", ->
|
|
|
- @User.update
|
|
|
- .calledWith({
|
|
|
- _id: @user_id
|
|
|
- }, {
|
|
|
- $set:
|
|
|
- features:
|
|
|
- @Settings.bonus_features["3"]
|
|
|
- })
|
|
|
- .should.equal true
|
|
|
-
|
|
|
- it "should call the callback", ->
|
|
|
- @callback.called.should.equal true
|
|
|
+
|
|
|
|
|
|
describe "when the user has better features already", ->
|
|
|
|
|
|
@@ -181,7 +129,6 @@ describe 'Referal allocator', ->
|
|
|
|
|
|
@User.findOne = sinon.stub().callsArgWith 1, null, @stubbedUser
|
|
|
@User.update = sinon.stub().callsArgWith 2, null
|
|
|
- @SubscriptionLocator.getUsersSubscription = sinon.stub().callsArgWith 1, null,null
|
|
|
|
|
|
it "should not set in in mongo when the feature is better", (done)->
|
|
|
@ReferalAllocator.assignBonus @user_id, =>
|
|
|
@@ -204,14 +151,8 @@ describe 'Referal allocator', ->
|
|
|
versioning: false
|
|
|
@User.findOne = sinon.stub().callsArgWith 1, null, { refered_user_count: @refered_user_count }
|
|
|
@User.update = sinon.stub().callsArgWith 2, null
|
|
|
- @SubscriptionLocator.getUsersSubscription = sinon.stub().callsArgWith 1, null, {}
|
|
|
@ReferalAllocator.assignBonus @user_id, @callback
|
|
|
|
|
|
- it "should get the users subscription", ->
|
|
|
- @SubscriptionLocator.getUsersSubscription
|
|
|
- .calledWith(@user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
it "should get the users number of refered user", ->
|
|
|
@User.findOne
|
|
|
.calledWith(_id: @user_id)
|
|
|
@@ -223,29 +164,4 @@ describe 'Referal allocator', ->
|
|
|
it "should call the callback", ->
|
|
|
@callback.called.should.equal true
|
|
|
|
|
|
- describe "when user has a subscription", ->
|
|
|
- beforeEach ->
|
|
|
- @refered_user_count = 3
|
|
|
- @Settings.bonus_features =
|
|
|
- "3":
|
|
|
- collaborators: 3
|
|
|
- dropbox: false
|
|
|
- versioning: false
|
|
|
- @User.findOne = sinon.stub().callsArgWith 1, null, { refered_user_count: @refered_user_count }
|
|
|
- @User.update = sinon.stub().callsArgWith 2, null
|
|
|
- @SubscriptionLocator.getUsersSubscription = sinon.stub().callsArgWith 1, null, { planCode: "collaborator" }
|
|
|
- @ReferalAllocator.assignBonus @user_id, @callback
|
|
|
-
|
|
|
- it "should get the users subscription", ->
|
|
|
- @SubscriptionLocator.getUsersSubscription
|
|
|
- .calledWith(@user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
- it "should not get the users number of refered user", ->
|
|
|
- @User.findOne.called.should.equal false
|
|
|
|
|
|
- it "should not update the user to bonus features", ->
|
|
|
- @User.update.called.should.equal false
|
|
|
-
|
|
|
- it "should call the callback", ->
|
|
|
- @callback.called.should.equal true
|