ReferalHandlerTests.coffee 2.1 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/ReferalHandler.js'
  6. describe 'Referal handler', ->
  7. beforeEach ->
  8. @User = findById:sinon.stub()
  9. @handler = SandboxedModule.require modulePath, requires:
  10. 'logger-sharelatex':
  11. log:->
  12. err:->
  13. '../../models/User': User:@User
  14. @user_id = "12313"
  15. describe 'getting refered user_ids', ->
  16. it 'should get the user from mongo and return the refered users array', (done)->
  17. user =
  18. refered_users : ["1234", "312312", "3213129"]
  19. refered_user_count : 3
  20. @User.findById.callsArgWith(1, null, user)
  21. @handler.getReferedUsers @user_id, (err, passedReferedUserIds, passedReferedUserCount)->
  22. passedReferedUserIds.should.deep.equal user.refered_users
  23. passedReferedUserCount.should.equal 3
  24. done()
  25. it 'should return an empty array if it is not set', (done)->
  26. user = {}
  27. @User.findById.callsArgWith(1, null, user)
  28. @handler.getReferedUsers @user_id, (err, passedReferedUserIds, passedReferedUserCount)->
  29. passedReferedUserIds.length.should.equal 0
  30. done()
  31. it 'should return a zero count if netither it or the array are set', (done)->
  32. user = {}
  33. @User.findById.callsArgWith(1, null, user)
  34. @handler.getReferedUsers @user_id, (err, passedReferedUserIds, passedReferedUserCount)->
  35. passedReferedUserCount.should.equal 0
  36. done()
  37. it 'should return the array length if count is not set', (done)->
  38. user =
  39. refered_users : ["1234", "312312", "3213129"]
  40. @User.findById.callsArgWith(1, null, user)
  41. @handler.getReferedUsers @user_id, (err, passedReferedUserIds, passedReferedUserCount)->
  42. passedReferedUserCount.should.equal 3
  43. done()
  44. it 'should return the count if it differs from the array length', (done)->
  45. user =
  46. refered_users : ["1234", "312312", "3213129"]
  47. refered_user_count : 5
  48. @User.findById.callsArgWith(1, null, user)
  49. @handler.getReferedUsers @user_id, (err, passedReferedUserIds, passedReferedUserCount)->
  50. passedReferedUserCount.should.equal 5
  51. done()