Merge pull request #603 from sharelatex/ta-use-multi-emails
Use Multiple Emails
This commit is contained in:
+6
-6
@@ -25,7 +25,7 @@ describe "CollaboratorsInviteController", ->
|
||||
|
||||
@LimitationsManager = {}
|
||||
@UserGetter =
|
||||
getUserByMainEmail: sinon.stub()
|
||||
getUserByAnyEmail: sinon.stub()
|
||||
getUser: sinon.stub()
|
||||
|
||||
@CollaboratorsInviteController = SandboxedModule.require modulePath, requires:
|
||||
@@ -716,7 +716,7 @@ describe "CollaboratorsInviteController", ->
|
||||
|
||||
beforeEach ->
|
||||
@user = {_id: ObjectId().toString()}
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, null, @user)
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, null, @user)
|
||||
|
||||
it 'should callback with `true`', (done) ->
|
||||
@call (err, shouldAllow) =>
|
||||
@@ -728,7 +728,7 @@ describe "CollaboratorsInviteController", ->
|
||||
|
||||
beforeEach ->
|
||||
@user = null
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, null, @user)
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, null, @user)
|
||||
|
||||
it 'should callback with `false`', (done) ->
|
||||
@call (err, shouldAllow) =>
|
||||
@@ -738,15 +738,15 @@ describe "CollaboratorsInviteController", ->
|
||||
|
||||
it 'should have called getUser', (done) ->
|
||||
@call (err, shouldAllow) =>
|
||||
@UserGetter.getUserByMainEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByMainEmail.calledWith(@email, {_id: 1}).should.equal true
|
||||
@UserGetter.getUserByAnyEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByAnyEmail.calledWith(@email, {_id: 1}).should.equal true
|
||||
done()
|
||||
|
||||
describe 'when getUser produces an error', ->
|
||||
|
||||
beforeEach ->
|
||||
@user = null
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, new Error('woops'))
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, new Error('woops'))
|
||||
|
||||
it 'should callback with an error', (done) ->
|
||||
@call (err, shouldAllow) =>
|
||||
|
||||
@@ -605,7 +605,7 @@ describe "CollaboratorsInviteHandler", ->
|
||||
_id: ObjectId()
|
||||
first_name: "jim"
|
||||
@existingUser = {_id: ObjectId()}
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, null, @existingUser)
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, null, @existingUser)
|
||||
@fakeProject =
|
||||
_id: @project_id
|
||||
name: "some project"
|
||||
@@ -626,8 +626,8 @@ describe "CollaboratorsInviteHandler", ->
|
||||
|
||||
it 'should call getUser', (done) ->
|
||||
@call (err) =>
|
||||
@UserGetter.getUserByMainEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByMainEmail.calledWith(@invite.email).should.equal true
|
||||
@UserGetter.getUserByAnyEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByAnyEmail.calledWith(@invite.email).should.equal true
|
||||
done()
|
||||
|
||||
it 'should call getProject', (done) ->
|
||||
@@ -671,7 +671,7 @@ describe "CollaboratorsInviteHandler", ->
|
||||
describe 'when the user does not exist', ->
|
||||
|
||||
beforeEach ->
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, null, null)
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, null, null)
|
||||
|
||||
it 'should not produce an error', (done) ->
|
||||
@call (err) =>
|
||||
@@ -680,8 +680,8 @@ describe "CollaboratorsInviteHandler", ->
|
||||
|
||||
it 'should call getUser', (done) ->
|
||||
@call (err) =>
|
||||
@UserGetter.getUserByMainEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByMainEmail.calledWith(@invite.email).should.equal true
|
||||
@UserGetter.getUserByAnyEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByAnyEmail.calledWith(@invite.email).should.equal true
|
||||
done()
|
||||
|
||||
it 'should not call getProject', (done) ->
|
||||
@@ -698,7 +698,7 @@ describe "CollaboratorsInviteHandler", ->
|
||||
describe 'when the getUser produces an error', ->
|
||||
|
||||
beforeEach ->
|
||||
@UserGetter.getUserByMainEmail = sinon.stub().callsArgWith(2, new Error('woops'))
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub().callsArgWith(2, new Error('woops'))
|
||||
|
||||
it 'should produce an error', (done) ->
|
||||
@call (err) =>
|
||||
@@ -707,8 +707,8 @@ describe "CollaboratorsInviteHandler", ->
|
||||
|
||||
it 'should call getUser', (done) ->
|
||||
@call (err) =>
|
||||
@UserGetter.getUserByMainEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByMainEmail.calledWith(@invite.email).should.equal true
|
||||
@UserGetter.getUserByAnyEmail.callCount.should.equal 1
|
||||
@UserGetter.getUserByAnyEmail.calledWith(@invite.email).should.equal true
|
||||
done()
|
||||
|
||||
it 'should not call getProject', (done) ->
|
||||
|
||||
@@ -32,7 +32,7 @@ describe "SubscriptionGroupHandler", ->
|
||||
|
||||
@UserGetter =
|
||||
getUser: sinon.stub()
|
||||
getUserByMainEmail: sinon.stub()
|
||||
getUserByAnyEmail: sinon.stub()
|
||||
|
||||
@LimitationsManager =
|
||||
hasGroupMembersLimitReached: sinon.stub()
|
||||
@@ -71,11 +71,11 @@ describe "SubscriptionGroupHandler", ->
|
||||
describe "addUserToGroup", ->
|
||||
beforeEach ->
|
||||
@LimitationsManager.hasGroupMembersLimitReached.callsArgWith(1, null, false, @subscription)
|
||||
@UserGetter.getUserByMainEmail.callsArgWith(1, null, @user)
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @user)
|
||||
|
||||
it "should find the user", (done)->
|
||||
@Handler.addUserToGroup @adminUser_id, @newEmail, (err)=>
|
||||
@UserGetter.getUserByMainEmail.calledWith(@newEmail).should.equal true
|
||||
@UserGetter.getUserByAnyEmail.calledWith(@newEmail).should.equal true
|
||||
done()
|
||||
|
||||
it "should add the user to the group", (done)->
|
||||
@@ -102,7 +102,7 @@ describe "SubscriptionGroupHandler", ->
|
||||
done()
|
||||
|
||||
it "should add an email invite if no user is found", (done) ->
|
||||
@UserGetter.getUserByMainEmail.callsArgWith(1, null, null)
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, null)
|
||||
@Handler.addUserToGroup @adminUser_id, @newEmail, (err)=>
|
||||
@SubscriptionUpdater.addEmailInviteToGroup.calledWith(@adminUser_id, @newEmail).should.equal true
|
||||
done()
|
||||
|
||||
@@ -70,3 +70,11 @@ describe "UserCreator", ->
|
||||
assert.equal user.holdingAccount, true
|
||||
assert.equal user.last_name, "lastNammmmeee"
|
||||
done()
|
||||
|
||||
it "should set emails attribute", (done)->
|
||||
@UserCreator.createNewUser email: @email, (err, user)=>
|
||||
user.email.should.equal @email
|
||||
user.emails.length.should.equal 1
|
||||
user.emails[0].email.should.equal @email
|
||||
user.emails[0].createdAt.should.be.a 'date'
|
||||
done()
|
||||
|
||||
@@ -85,3 +85,20 @@ describe "UserGetter", ->
|
||||
@findOne.calledTwice.should.equal true
|
||||
@findOne.calledWith(email: email, projection).should.equal true
|
||||
done()
|
||||
|
||||
describe 'ensureUniqueEmailAddress', ->
|
||||
beforeEach ->
|
||||
@UserGetter.getUserByAnyEmail = sinon.stub()
|
||||
|
||||
it 'should return error if existing user is found', (done)->
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @fakeUser)
|
||||
@UserGetter.ensureUniqueEmailAddress @newEmail, (err)=>
|
||||
should.exist(err)
|
||||
err.message.should.equal 'alread_exists'
|
||||
done()
|
||||
|
||||
it 'should return null if no user is found', (done)->
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1)
|
||||
@UserGetter.ensureUniqueEmailAddress @newEmail, (err)=>
|
||||
should.not.exist(err)
|
||||
done()
|
||||
|
||||
@@ -14,7 +14,7 @@ describe "UserRegistrationHandler", ->
|
||||
@User =
|
||||
update: sinon.stub().callsArgWith(2)
|
||||
@UserGetter =
|
||||
getUserByMainEmail: sinon.stub()
|
||||
getUserByAnyEmail: sinon.stub()
|
||||
@UserCreator =
|
||||
createNewUser:sinon.stub().callsArgWith(1, null, @user)
|
||||
@AuthenticationManager =
|
||||
@@ -72,7 +72,7 @@ describe "UserRegistrationHandler", ->
|
||||
beforeEach ->
|
||||
@user.holdingAccount = true
|
||||
@handler._registrationRequestIsValid = sinon.stub().returns true
|
||||
@UserGetter.getUserByMainEmail.callsArgWith(1, null, @user)
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @user)
|
||||
|
||||
it "should not create a new user if there is a holding account there", (done)->
|
||||
@handler.registerNewUser @passingRequest, (err)=>
|
||||
@@ -96,7 +96,7 @@ describe "UserRegistrationHandler", ->
|
||||
done()
|
||||
|
||||
it "should return email registered in the error if there is a non holdingAccount there", (done)->
|
||||
@UserGetter.getUserByMainEmail.callsArgWith(1, null, @user = {holdingAccount:false})
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @user = {holdingAccount:false})
|
||||
@handler.registerNewUser @passingRequest, (err, user)=>
|
||||
err.should.deep.equal new Error("EmailAlreadyRegistered")
|
||||
user.should.deep.equal @user
|
||||
@@ -105,7 +105,7 @@ describe "UserRegistrationHandler", ->
|
||||
describe "validRequest", ->
|
||||
beforeEach ->
|
||||
@handler._registrationRequestIsValid = sinon.stub().returns true
|
||||
@UserGetter.getUserByMainEmail.callsArgWith 1
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith 1
|
||||
|
||||
it "should create a new user", (done)->
|
||||
@handler.registerNewUser @passingRequest, (err)=>
|
||||
|
||||
@@ -17,6 +17,7 @@ describe "UserUpdater", ->
|
||||
@UserGetter =
|
||||
getUserEmail: sinon.stub()
|
||||
getUserByAnyEmail: sinon.stub()
|
||||
ensureUniqueEmailAddress: sinon.stub()
|
||||
@logger = err: sinon.stub(), log: ->
|
||||
@UserUpdater = SandboxedModule.require modulePath, requires:
|
||||
"settings-sharelatex":@settings
|
||||
@@ -60,13 +61,13 @@ describe "UserUpdater", ->
|
||||
|
||||
describe 'addEmailAddress', ->
|
||||
beforeEach ->
|
||||
@UserUpdater._ensureUniqueEmailAddress = sinon.stub().callsArgWith(1)
|
||||
@UserGetter.ensureUniqueEmailAddress = sinon.stub().callsArgWith(1)
|
||||
|
||||
it 'add email', (done)->
|
||||
@UserUpdater.updateUser = sinon.stub().callsArgWith(2, null)
|
||||
|
||||
@UserUpdater.addEmailAddress @stubbedUser._id, @newEmail, (err)=>
|
||||
@UserUpdater._ensureUniqueEmailAddress.called.should.equal true
|
||||
@UserGetter.ensureUniqueEmailAddress.called.should.equal true
|
||||
should.not.exist(err)
|
||||
@UserUpdater.updateUser.calledWith(
|
||||
@stubbedUser._id,
|
||||
@@ -135,15 +136,3 @@ describe "UserUpdater", ->
|
||||
done()
|
||||
|
||||
|
||||
describe '_ensureUniqueEmailAddress', ->
|
||||
it 'should return error if existing user is found', (done)->
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @stubbedUser)
|
||||
@UserUpdater._ensureUniqueEmailAddress @newEmail, (err)=>
|
||||
should.exist(err)
|
||||
done()
|
||||
|
||||
it 'should return null if no user is found', (done)->
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1)
|
||||
@UserUpdater._ensureUniqueEmailAddress @newEmail, (err)=>
|
||||
should.not.exist(err)
|
||||
done()
|
||||
|
||||
Reference in New Issue
Block a user