change email address in newsletter when changing default email

put mongo_id into mailchimp merge fields
This commit is contained in:
Henry Oswald
2018-08-08 13:50:03 +01:00
parent 6208e9f2d0
commit 687637eec7
3 changed files with 38 additions and 12 deletions
@@ -18,21 +18,27 @@ describe "UserUpdater", ->
getUserEmail: sinon.stub()
getUserByAnyEmail: sinon.stub()
ensureUniqueEmailAddress: sinon.stub()
@logger = err: sinon.stub(), log: ->
@logger =
err: sinon.stub()
log: ->
warn: ->
@addAffiliation = sinon.stub().yields()
@removeAffiliation = sinon.stub().callsArgWith(2, null)
@refreshFeatures = sinon.stub().yields()
@NewsletterManager =
changeEmail:sinon.stub()
@UserUpdater = SandboxedModule.require modulePath, requires:
"logger-sharelatex": @logger
"../../infrastructure/mongojs":@mongojs
"metrics-sharelatex": timeAsyncMethod: sinon.stub()
"./UserGetter": @UserGetter
'../Institutions/InstitutionsAPI':
addAffiliation: @addAffiliation
removeAffiliation: @removeAffiliation
'../Subscription/FeaturesUpdater': refreshFeatures: @refreshFeatures
"../../infrastructure/mongojs":@mongojs
"metrics-sharelatex": timeAsyncMethod: sinon.stub()
"settings-sharelatex": @settings = {}
"request": @request = {}
"../Newsletter/NewsletterManager": @NewsletterManager
@stubbedUser =
_id: "3131231"
@@ -174,6 +180,10 @@ describe "UserUpdater", ->
done()
describe 'setDefaultEmailAddress', ->
beforeEach ->
@UserGetter.getUserEmail.callsArgWith(1, null, @stubbedUser.email)
@NewsletterManager.changeEmail.callsArgWith(2, null)
it 'set default', (done)->
@UserUpdater.updateUser = sinon.stub().callsArgWith(2, null, n: 1)
@@ -185,6 +195,16 @@ describe "UserUpdater", ->
).should.equal true
done()
it 'set changed the email in newsletter', (done)->
@UserUpdater.updateUser = sinon.stub().callsArgWith(2, null, n: 1)
@UserUpdater.setDefaultEmailAddress @stubbedUser._id, @newEmail, (err)=>
should.not.exist(err)
@NewsletterManager.changeEmail.calledWith(
@stubbedUser.email, @newEmail
).should.equal true
done()
it 'handle error', (done)->
@UserUpdater.updateUser = sinon.stub().callsArgWith(2, new Error('nope'))