Merge pull request #2761 from overleaf/jpa-user-controller-bail-out-next

[UserController] updateUserSettings: bail out after calling next(err)

GitOrigin-RevId: f1905c0c54f3feb98836443cbf8e080888d4901c
This commit is contained in:
Eric Mc Sween
2020-04-24 03:31:04 +00:00
committed by Copybot
parent bf952e134f
commit d8615ddba3
2 changed files with 20 additions and 1 deletions
@@ -405,6 +405,25 @@ describe('UserController', function() {
this.UserController.updateUserSettings(this.req, this.res)
})
describe('when changeEmailAddress yields an error', function() {
it('should pass on an error and not send a success status', function(done) {
this.req.body.email = this.newEmail.toUpperCase()
this.UserUpdater.changeEmailAddress.callsArgWith(2, new Error())
const next = err => {
expect(err).to.exist
process.nextTick(() => {
// logic in User.findById
expect(this.res.send.called).to.equal(false)
expect(this.res.sendStatus.called).to.equal(false)
// logic after error handling
expect(this.User.findById.callCount).to.equal(1)
done()
})
}
this.UserController.updateUserSettings(this.req, this.res, next)
})
})
describe('when using an external auth source', function() {
beforeEach(function() {
this.UserUpdater.changeEmailAddress.callsArgWith(2)