| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- SandboxedModule = require('sandboxed-module')
- assert = require('assert')
- require('chai').should()
- sinon = require('sinon')
- modulePath = require('path').join __dirname, '../../../../app/js/Features/Referal/ReferalFeatures.js'
- describe 'ReferalFeatures', ->
- beforeEach ->
- @ReferalFeatures = SandboxedModule.require modulePath, requires:
- '../../models/User': User: @User = {}
- "settings-sharelatex": @Settings = {}
- 'logger-sharelatex':
- log:->
- err:->
- @callback = sinon.stub()
- @referal_id = "referal-id-123"
- @referal_medium = "twitter"
- @user_id = "user-id-123"
- @new_user_id = "new-user-id-123"
- describe "getBonusFeatures", ->
- beforeEach ->
- @refered_user_count = 3
- @Settings.bonus_features =
- "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
- @ReferalFeatures.getBonusFeatures @user_id, @callback
- it "should get the users number of refered user", ->
- @User.findOne
- .calledWith(_id: @user_id)
- .should.equal true
- it "should call the callback with the features", ->
- @callback.calledWith(null, @Settings.bonus_features[3]).should.equal true
- describe "when the user is not at a bonus level", ->
- beforeEach ->
- @refered_user_count = 0
- @Settings.bonus_features =
- "1":
- collaborators: 3
- dropbox: false
- versioning: false
- @User.findOne = sinon.stub().callsArgWith 1, null, { refered_user_count: @refered_user_count }
- @ReferalFeatures.getBonusFeatures @user_id, @callback
- it "should get the users number of refered user", ->
- @User.findOne
- .calledWith(_id: @user_id)
- .should.equal true
- it "should call the callback with no features", ->
- @callback.calledWith(null, {}).should.equal true
|