diff --git a/services/web/app/coffee/Features/User/UserGetter.coffee b/services/web/app/coffee/Features/User/UserGetter.coffee index 10a975613e..3160258b24 100644 --- a/services/web/app/coffee/Features/User/UserGetter.coffee +++ b/services/web/app/coffee/Features/User/UserGetter.coffee @@ -37,7 +37,8 @@ module.exports = UserGetter = if arguments.length == 2 callback = projection projection = {} - db.users.findOne 'emails.email': email, projection, (error, user) => + query = emails: { $exists: true }, 'emails.email': email + db.users.findOne query, projection, (error, user) => return callback(error, user) if error? or user? # While multiple emails are being rolled out, check for the main email as diff --git a/services/web/test/unit/coffee/User/UserGetterTests.coffee b/services/web/test/unit/coffee/User/UserGetterTests.coffee index cdc22772f3..b25bab87a7 100644 --- a/services/web/test/unit/coffee/User/UserGetterTests.coffee +++ b/services/web/test/unit/coffee/User/UserGetterTests.coffee @@ -60,9 +60,12 @@ describe "UserGetter", -> describe "getUserByAnyEmail", -> it "query user for any email", (done)-> email = 'hello@world.com' + expectedQuery = + emails: { $exists: true } + 'emails.email': email projection = emails: 1 @UserGetter.getUserByAnyEmail " #{email} ", projection, (error, user) => - @findOne.calledWith('emails.email': email, projection).should.equal true + @findOne.calledWith(expectedQuery, projection).should.equal true user.should.deep.equal @fakeUser done()