SettingsTests.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* eslint-disable
  2. handle-callback-err,
  3. */
  4. // TODO: This file was created by bulk-decaffeinate.
  5. // Fix any style issues and re-enable lint.
  6. /*
  7. * decaffeinate suggestions:
  8. * DS102: Remove unnecessary code created because of implicit returns
  9. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  10. */
  11. const should = require('chai').should()
  12. const async = require('async')
  13. const User = require('./helpers/User')
  14. const MockV1Api = require('./helpers/MockV1Api')
  15. describe('SettingsPage', function() {
  16. beforeEach(function(done) {
  17. this.user = new User()
  18. this.v1Id = 1234
  19. this.v1User = {
  20. id: this.v1Id,
  21. email: this.user.email,
  22. password: this.user.password,
  23. profile: {
  24. id: this.v1Id,
  25. email: this.user.email
  26. }
  27. }
  28. return async.series(
  29. [
  30. this.user.ensureUserExists.bind(this.user),
  31. this.user.login.bind(this.user),
  32. cb => this.user.mongoUpdate({ $set: { 'overleaf.id': this.v1Id } }, cb),
  33. cb => {
  34. MockV1Api.setUser(this.v1Id, this.v1User)
  35. return cb()
  36. },
  37. this.user.activateSudoMode.bind(this.user)
  38. ],
  39. done
  40. )
  41. })
  42. it('load settings page', function(done) {
  43. return this.user.getUserSettingsPage((err, statusCode) => {
  44. statusCode.should.equal(200)
  45. return done()
  46. })
  47. })
  48. it('update main email address', function(done) {
  49. const newEmail = 'foo@bar.com'
  50. return this.user.updateSettings({ email: newEmail }, error => {
  51. should.not.exist(error)
  52. return this.user.get((error, user) => {
  53. user.email.should.equal(newEmail)
  54. user.emails.length.should.equal(1)
  55. user.emails[0].email.should.equal(newEmail)
  56. return done()
  57. })
  58. })
  59. })
  60. })