ReferalHandlerTests.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. const SandboxedModule = require('sandboxed-module')
  2. const { expect } = require('chai')
  3. const sinon = require('sinon')
  4. const modulePath = require('path').join(
  5. __dirname,
  6. '../../../../app/src/Features/Referal/ReferalHandler.js'
  7. )
  8. describe('Referal handler', function () {
  9. beforeEach(function () {
  10. this.User = { findById: sinon.stub() }
  11. this.handler = SandboxedModule.require(modulePath, {
  12. requires: {
  13. '../../models/User': {
  14. User: this.User,
  15. },
  16. },
  17. })
  18. this.user_id = '12313'
  19. })
  20. describe('getting refered user_ids', function () {
  21. it('should get the user from mongo and return the refered users array', function (done) {
  22. const user = {
  23. refered_users: ['1234', '312312', '3213129'],
  24. refered_user_count: 3,
  25. }
  26. this.User.findById.callsArgWith(2, null, user)
  27. this.handler.getReferedUsers(
  28. this.user_id,
  29. (err, passedReferedUserIds, passedReferedUserCount) => {
  30. expect(err).not.to.exist
  31. passedReferedUserIds.should.deep.equal(user.refered_users)
  32. passedReferedUserCount.should.equal(3)
  33. done()
  34. }
  35. )
  36. })
  37. it('should return an empty array if it is not set', function (done) {
  38. const user = {}
  39. this.User.findById.callsArgWith(2, null, user)
  40. this.handler.getReferedUsers(
  41. this.user_id,
  42. (err, passedReferedUserIds, passedReferedUserCount) => {
  43. expect(err).not.to.exist
  44. passedReferedUserIds.length.should.equal(0)
  45. done()
  46. }
  47. )
  48. })
  49. it('should return a zero count if neither it or the array are set', function (done) {
  50. const user = {}
  51. this.User.findById.callsArgWith(2, null, user)
  52. this.handler.getReferedUsers(
  53. this.user_id,
  54. (err, passedReferedUserIds, passedReferedUserCount) => {
  55. expect(err).not.to.exist
  56. passedReferedUserCount.should.equal(0)
  57. done()
  58. }
  59. )
  60. })
  61. it('should return the array length if count is not set', function (done) {
  62. const user = { refered_users: ['1234', '312312', '3213129'] }
  63. this.User.findById.callsArgWith(2, null, user)
  64. this.handler.getReferedUsers(
  65. this.user_id,
  66. (err, passedReferedUserIds, passedReferedUserCount) => {
  67. expect(err).not.to.exist
  68. passedReferedUserCount.should.equal(3)
  69. done()
  70. }
  71. )
  72. })
  73. it('should error if finding the user fails', function (done) {
  74. this.User.findById.callsArgWith(2, new Error('user not found'))
  75. this.handler.getReferedUsers(this.user_id, err => {
  76. err.should.match(/user not found/)
  77. done()
  78. })
  79. })
  80. })
  81. })