ReferalFeaturesTests.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. '../User/UserGetter': @UserGetter = {}
  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. @UserGetter.getUserOrUserStubById = sinon.stub().yields null, stubbedUser
  32. @ReferalFeatures.getBonusFeatures @user_id, @callback
  33. it "should get the users number of refered user", ->
  34. @UserGetter.getUserOrUserStubById
  35. .calledWith(@user_id, null)
  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. @UserGetter.getUserOrUserStubById =
  48. sinon.stub().yields null, { refered_user_count: @refered_user_count }
  49. @ReferalFeatures.getBonusFeatures @user_id, @callback
  50. it "should get the users number of refered user", ->
  51. @UserGetter.getUserOrUserStubById
  52. .calledWith(@user_id, null)
  53. .should.equal true
  54. it "should call the callback with no features", ->
  55. @callback.calledWith(null, {}).should.equal true