UserPagesControllerTests.coffee 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. should = require('chai').should()
  2. SandboxedModule = require('sandboxed-module')
  3. assert = require('assert')
  4. path = require('path')
  5. sinon = require('sinon')
  6. modulePath = path.join __dirname, "../../../../app/js/Features/User/UserPagesController"
  7. expect = require("chai").expect
  8. describe "UserPagesController", ->
  9. beforeEach ->
  10. @settings = {}
  11. @user =
  12. _id:"kwjewkl"
  13. features:{}
  14. @UserDeleter =
  15. deleteUser: sinon.stub().callsArgWith(1)
  16. @UserLocator =
  17. findById: sinon.stub().callsArgWith(1, null, @user)
  18. @dropboxStatus = {}
  19. @DropboxHandler =
  20. getUserRegistrationStatus : sinon.stub().callsArgWith(1, null, @dropboxStatus)
  21. @UserPagesController = SandboxedModule.require modulePath, requires:
  22. "settings-sharelatex":@settings
  23. "logger-sharelatex": log:->
  24. "./UserLocator": @UserLocator
  25. '../Dropbox/DropboxHandler': @DropboxHandler
  26. @req =
  27. query:{}
  28. session:
  29. user:@user
  30. @res = {}
  31. describe "registerPage", ->
  32. it "should render the register page", (done)->
  33. @res.render = (page)=>
  34. page.should.equal "user/register"
  35. done()
  36. @UserPagesController.registerPage @req, @res
  37. it "should set the redirect", (done)->
  38. redirect = "/go/here/please"
  39. @req.query.redir = redirect
  40. @res.render = (page, opts)=>
  41. opts.redir.should.equal redirect
  42. done()
  43. @UserPagesController.registerPage @req, @res
  44. it "should set sharedProjectData", (done)->
  45. @req.query.project_name = "myProject"
  46. @req.query.user_first_name = "user_first_name_here"
  47. @res.render = (page, opts)=>
  48. opts.sharedProjectData.project_name.should.equal "myProject"
  49. opts.sharedProjectData.user_first_name.should.equal "user_first_name_here"
  50. done()
  51. @UserPagesController.registerPage @req, @res
  52. it "should set newTemplateData", (done)->
  53. @req.session.templateData =
  54. templateName : "templateName"
  55. @res.render = (page, opts)=>
  56. opts.newTemplateData.templateName.should.equal "templateName"
  57. done()
  58. @UserPagesController.registerPage @req, @res
  59. it "should not set the newTemplateData if there is nothing in the session", (done)->
  60. @res.render = (page, opts)=>
  61. assert.equal opts.newTemplateData.templateName, undefined
  62. done()
  63. @UserPagesController.registerPage @req, @res
  64. describe "loginForm", ->
  65. it "should render the login page", (done)->
  66. @res.render = (page)=>
  67. page.should.equal "user/login"
  68. done()
  69. @UserPagesController.loginPage @req, @res
  70. it "should set the redirect", (done)->
  71. redirect = "/go/here/please"
  72. @req.query.redir = redirect
  73. @res.render = (page, opts)=>
  74. opts.redir.should.equal redirect
  75. done()
  76. @UserPagesController.loginPage @req, @res
  77. describe "passwordResetPage", ->
  78. it "should render the login page", (done)->
  79. @res.render = (page)=>
  80. page.should.equal "user/passwordReset"
  81. done()
  82. @UserPagesController.passwordResetPage @req, @res
  83. describe "settingsPage", ->
  84. it "should render user/settings", (done)->
  85. @res.render = (page)->
  86. page.should.equal "user/settings"
  87. done()
  88. @UserPagesController.settingsPage @req, @res
  89. it "should send user", (done)->
  90. @res.render = (page, opts)=>
  91. opts.user.should.equal @user
  92. done()
  93. @UserPagesController.settingsPage @req, @res