UserCreatorTests.coffee 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. sinon = require('sinon')
  2. chai = require('chai')
  3. assert = require("assert")
  4. should = chai.should()
  5. modulePath = "../../../../app/js/Features/User/UserCreator.js"
  6. SandboxedModule = require('sandboxed-module')
  7. describe "UserCreator", ->
  8. beforeEach ->
  9. self = @
  10. @user = {_id:"12390i", ace: {}}
  11. @user.save = sinon.stub().callsArgWith(0)
  12. @UserModel = class Project
  13. constructor: ->
  14. return self.user
  15. @UserGetter =
  16. getUserByMainEmail: sinon.stub()
  17. @UserCreator = SandboxedModule.require modulePath, requires:
  18. "../../models/User": User:@UserModel
  19. "./UserGetter":@UserGetter
  20. "logger-sharelatex":{log:->}
  21. 'metrics-sharelatex': {timeAsyncMethod: ()->}
  22. @email = "bob.oswald@gmail.com"
  23. describe "createNewUser", ->
  24. it "should take the opts and put them in the model", (done)->
  25. opts =
  26. email:@email
  27. holdingAccount:true
  28. @UserCreator.createNewUser opts, (err, user)=>
  29. assert.equal user.email, @email
  30. assert.equal user.holdingAccount, true
  31. assert.equal user.first_name, "bob.oswald"
  32. done()
  33. it "should use the start of the email if the first name is empty string", (done)->
  34. opts =
  35. email:@email
  36. holdingAccount:true
  37. first_name:""
  38. @UserCreator.createNewUser opts, (err, user)=>
  39. assert.equal user.email, @email
  40. assert.equal user.holdingAccount, true
  41. assert.equal user.first_name, "bob.oswald"
  42. done()
  43. it "should use the first name if passed", (done)->
  44. opts =
  45. email:@email
  46. holdingAccount:true
  47. first_name:"fiiirstname"
  48. @UserCreator.createNewUser opts, (err, user)=>
  49. assert.equal user.email, @email
  50. assert.equal user.holdingAccount, true
  51. assert.equal user.first_name, "fiiirstname"
  52. done()
  53. it "should use the last name if passed", (done)->
  54. opts =
  55. email:@email
  56. holdingAccount:true
  57. last_name:"lastNammmmeee"
  58. @UserCreator.createNewUser opts, (err, user)=>
  59. assert.equal user.email, @email
  60. assert.equal user.holdingAccount, true
  61. assert.equal user.last_name, "lastNammmmeee"
  62. done()