ReferalConnectTests.coffee 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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/ReferalConnect.js'
  6. describe 'Referal connect middle wear', ->
  7. beforeEach ->
  8. @connect = SandboxedModule.require modulePath, requires:
  9. 'logger-sharelatex':
  10. log:->
  11. err:->
  12. it 'should take a referal query string and put it on the session if it exists', (done)->
  13. req =
  14. query: {referal : "12345"}
  15. session : {}
  16. @connect.use req, {}, ->
  17. req.session.referal_id.should.equal(req.query.referal)
  18. done()
  19. it 'should not change the referal_id on the session if not in query', (done)->
  20. req =
  21. query: {}
  22. session : {referal_id : "same"}
  23. @connect.use req, {}, ->
  24. req.session.referal_id.should.equal("same")
  25. done()
  26. it 'should take a facebook referal query string and put it on the session if it exists', (done)->
  27. req =
  28. query: {fb_ref : "12345"}
  29. session : {}
  30. @connect.use req, {}, ->
  31. req.session.referal_id.should.equal(req.query.fb_ref)
  32. done()
  33. it "should map the facebook medium into the session", (done) ->
  34. req =
  35. query: {rm : "fb"}
  36. session : {}
  37. @connect.use req, {}, ->
  38. req.session.referal_medium.should.equal("facebook")
  39. done()
  40. it "should map the twitter medium into the session", (done) ->
  41. req =
  42. query: {rm : "t"}
  43. session : {}
  44. @connect.use req, {}, ->
  45. req.session.referal_medium.should.equal("twitter")
  46. done()
  47. it "should map the google plus medium into the session", (done) ->
  48. req =
  49. query: {rm : "gp"}
  50. session : {}
  51. @connect.use req, {}, ->
  52. req.session.referal_medium.should.equal("google_plus")
  53. done()
  54. it "should map the email medium into the session", (done) ->
  55. req =
  56. query: {rm : "e"}
  57. session : {}
  58. @connect.use req, {}, ->
  59. req.session.referal_medium.should.equal("email")
  60. done()
  61. it "should map the direct medium into the session", (done) ->
  62. req =
  63. query: {rm : "d"}
  64. session : {}
  65. @connect.use req, {}, ->
  66. req.session.referal_medium.should.equal("direct")
  67. done()
  68. it "should map the bonus source into the session", (done) ->
  69. req =
  70. query: {rs : "b"}
  71. session : {}
  72. @connect.use req, {}, ->
  73. req.session.referal_source.should.equal("bonus")
  74. done()
  75. it "should map the public share source into the session", (done) ->
  76. req =
  77. query: {rs : "ps"}
  78. session : {}
  79. @connect.use req, {}, ->
  80. req.session.referal_source.should.equal("public_share")
  81. done()
  82. it "should map the collaborator invite into the session", (done) ->
  83. req =
  84. query: {rs : "ci"}
  85. session : {}
  86. @connect.use req, {}, ->
  87. req.session.referal_source.should.equal("collaborator_invite")
  88. done()