Return proper error from registration handler

This commit is contained in:
James Allen 2015-03-18 16:19:48 +00:00
parent cb948fede2
commit 93a088618a
4 changed files with 6 additions and 6 deletions

View file

@ -84,7 +84,7 @@ module.exports =
logger.log email: req.body.email, "attempted register"
redir = Url.parse(req.body.redir or "/project").path
UserRegistrationHandler.registerNewUser req.body, (err, user)->
if err == "EmailAlreadyRegisterd"
if err? and err?.message == "EmailAlreadyRegistered"
return AuthenticationController.login req, res
else if err?
next(err)

View file

@ -39,13 +39,13 @@ module.exports =
self = @
requestIsValid = @_registrationRequestIsValid userDetails
if !requestIsValid
return callback("request is not valid")
return callback(new Error("request is not valid"))
userDetails.email = userDetails.email?.trim()?.toLowerCase()
User.findOne email:userDetails.email, (err, user)->
if err?
return callback err
if user?.holdingAccount == false
return callback("EmailAlreadyRegisterd")
return callback(new Error("EmailAlreadyRegistered"))
self._createNewUserIfRequired user, userDetails, (err, user)->
if err?
return callback(err)

View file

@ -173,9 +173,9 @@ describe "UserController", ->
done()
@UserController.register @req, @res
it "should try and log the user in if there is an EmailAlreadyRegisterd error", (done)->
it "should try and log the user in if there is an EmailAlreadyRegistered error", (done)->
@UserRegistrationHandler.registerNewUser.callsArgWith(1, "EmailAlreadyRegisterd")
@UserRegistrationHandler.registerNewUser.callsArgWith(1, new Error("EmailAlreadyRegistered"))
@AuthenticationController.login = (req, res)=>
assert.deepEqual req, @req
assert.deepEqual res, @res

View file

@ -87,7 +87,7 @@ describe "UserRegistrationHandler", ->
it "should return email registered in the error if there is a non holdingAccount there", (done)->
@User.findOne.callsArgWith(1, null, {holdingAccount:false})
@handler.registerNewUser @passingRequest, (err)=>
err.should.equal "EmailAlreadyRegisterd"
err.should.deep.equal new Error("EmailAlreadyRegistered")
done()
describe "validRequest", ->