UserPagesControllerTests.coffee 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. @UserLocator =
  15. findById: sinon.stub().callsArgWith(1, null, @user)
  16. @dropboxStatus = {}
  17. @DropboxHandler =
  18. getUserRegistrationStatus : sinon.stub().callsArgWith(1, null, @dropboxStatus)
  19. @UserPagesController = SandboxedModule.require modulePath, requires:
  20. "settings-sharelatex":@settings
  21. "logger-sharelatex": log:->
  22. "./UserLocator": @UserLocator
  23. '../Dropbox/DropboxHandler': @DropboxHandler
  24. @req =
  25. query:{}
  26. session:
  27. user:@user
  28. @res = {}
  29. describe "registerPage", ->
  30. it "should render the register page", (done)->
  31. @res.render = (page)=>
  32. page.should.equal "user/register"
  33. done()
  34. @UserPagesController.registerPage @req, @res
  35. it "should set the redirect", (done)->
  36. redirect = "/go/here/please"
  37. @req.query.redir = redirect
  38. @res.render = (page, opts)=>
  39. opts.redir.should.equal redirect
  40. done()
  41. @UserPagesController.registerPage @req, @res
  42. it "should set sharedProjectData", (done)->
  43. @req.query.project_name = "myProject"
  44. @req.query.user_first_name = "user_first_name_here"
  45. @res.render = (page, opts)=>
  46. opts.sharedProjectData.project_name.should.equal "myProject"
  47. opts.sharedProjectData.user_first_name.should.equal "user_first_name_here"
  48. done()
  49. @UserPagesController.registerPage @req, @res
  50. it "should set newTemplateData", (done)->
  51. @req.session.templateData =
  52. templateName : "templateName"
  53. @res.render = (page, opts)=>
  54. opts.newTemplateData.templateName.should.equal "templateName"
  55. done()
  56. @UserPagesController.registerPage @req, @res
  57. it "should not set the newTemplateData if there is nothing in the session", (done)->
  58. @res.render = (page, opts)=>
  59. assert.equal opts.newTemplateData.templateName, undefined
  60. done()
  61. @UserPagesController.registerPage @req, @res
  62. describe "loginForm", ->
  63. it "should render the login page", (done)->
  64. @res.render = (page)=>
  65. page.should.equal "user/login"
  66. done()
  67. @UserPagesController.loginPage @req, @res
  68. it "should set the redirect", (done)->
  69. redirect = "/go/here/please"
  70. @req.query.redir = redirect
  71. @res.render = (page, opts)=>
  72. opts.redir.should.equal redirect
  73. done()
  74. @UserPagesController.loginPage @req, @res
  75. describe "settingsPage", ->
  76. it "should render user/settings", (done)->
  77. @res.render = (page)->
  78. page.should.equal "user/settings"
  79. done()
  80. @UserPagesController.settingsPage @req, @res
  81. it "should send user", (done)->
  82. @res.render = (page, opts)=>
  83. opts.user.should.equal @user
  84. done()
  85. @UserPagesController.settingsPage @req, @res