mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
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:
parent
bf952e134f
commit
d8615ddba3
2 changed files with 20 additions and 1 deletions
|
@ -248,7 +248,7 @@ const UserController = {
|
|||
errorData.info.public.message = req.i18n.translate(
|
||||
'problem_changing_email_address'
|
||||
)
|
||||
next(
|
||||
return next(
|
||||
new HttpErrors.InternalServerError(errorData).withCause(err)
|
||||
)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue