ReferalFeaturesTests.coffee 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. SandboxedModule = require('sandboxed-module')
  2. assert = require('assert')
  3. require('chai').should()
  4. sinon = require('sinon')
  5. modulePath = require('path').join __dirname, '../../../../app/js/Features/Referal/ReferalFeatures.js'
  6. describe 'ReferalFeatures', ->
  7. beforeEach ->
  8. @ReferalFeatures = SandboxedModule.require modulePath, requires:
  9. '../../models/User': User: @User = {}
  10. "settings-sharelatex": @Settings = {}
  11. 'logger-sharelatex':
  12. log:->
  13. err:->
  14. @callback = sinon.stub()
  15. @referal_id = "referal-id-123"
  16. @referal_medium = "twitter"
  17. @user_id = "user-id-123"
  18. @new_user_id = "new-user-id-123"
  19. describe "getBonusFeatures", ->
  20. beforeEach ->
  21. @refered_user_count = 3
  22. @Settings.bonus_features =
  23. "3":
  24. collaborators: 3
  25. dropbox: false
  26. versioning: false
  27. stubbedUser = {
  28. refered_user_count: @refered_user_count,
  29. features:{collaborators:1, dropbox:false, versioning:false}
  30. }
  31. @User.findOne = sinon.stub().callsArgWith 1, null, stubbedUser
  32. @ReferalFeatures.getBonusFeatures @user_id, @callback
  33. it "should get the users number of refered user", ->
  34. @User.findOne
  35. .calledWith(_id: @user_id)
  36. .should.equal true
  37. it "should call the callback with the features", ->
  38. @callback.calledWith(null, @Settings.bonus_features[3]).should.equal true
  39. describe "when the user is not at a bonus level", ->
  40. beforeEach ->
  41. @refered_user_count = 0
  42. @Settings.bonus_features =
  43. "1":
  44. collaborators: 3
  45. dropbox: false
  46. versioning: false
  47. @User.findOne = sinon.stub().callsArgWith 1, null, { refered_user_count: @refered_user_count }
  48. @ReferalFeatures.getBonusFeatures @user_id, @callback
  49. it "should get the users number of refered user", ->
  50. @User.findOne
  51. .calledWith(_id: @user_id)
  52. .should.equal true
  53. it "should call the callback with no features", ->
  54. @callback.calledWith(null, {}).should.equal true