Merge pull request #1816 from overleaf/spd-user-delete-newsletter

Don't fail to delete a user if unsubscribing from newsletter fails

GitOrigin-RevId: 8764717220d906a20a7dd0a90879a45d9dd8a7ce
This commit is contained in:
Simon Detheridge 2019-05-28 10:15:45 +01:00 committed by sharelatex
parent 40316b0735
commit 561f54c1a3
2 changed files with 25 additions and 2 deletions

View file

@ -55,7 +55,9 @@ module.exports = UserDeleter =
return callback(new Error("no user supplied")) unless user?
async.series([
(cb)->
NewsletterManager.unsubscribe user, cb
NewsletterManager.unsubscribe user, (err) ->
logger.err("Failed to unsubscribe user from newsletter", user_id: user._id, error: err)
cb()
(cb)->
SubscriptionHandler.cancelSubscription user, cb
(cb)->

View file

@ -50,7 +50,7 @@ describe "UserDeleter", ->
"../Institutions/InstitutionsAPI":
deleteAffiliations: @deleteAffiliations
"../../infrastructure/mongojs": @mongojs
"logger-sharelatex": @logger = { log: sinon.stub() }
"logger-sharelatex": @logger = { log: sinon.stub(), err: sinon.stub() }
describe "softDeleteUserForMigration", ->
@ -132,3 +132,24 @@ describe "UserDeleter", ->
@UserDeleter.deleteUser @user._id, (err)=>
@UserMembershipsHandler.removeUserFromAllEntities.calledWith(@user._id).should.equal true
done()
describe "when unsubscribing from mailchimp fails", ->
beforeEach ->
@NewsletterManager.unsubscribe = sinon.stub().callsArgWith(1, new Error("something went wrong"))
it "should not return an error", (done) ->
@UserDeleter.deleteUser @user._id, (err)=>
@NewsletterManager.unsubscribe.calledWith(@user).should.equal true
should.not.exist(err)
done()
it "should delete the user", (done) ->
@UserDeleter.deleteUser @user._id, (err)=>
@NewsletterManager.unsubscribe.calledWith(@user).should.equal true
@user.remove.called.should.equal true
done()
it "should log an error", (done) ->
@UserDeleter.deleteUser @user._id, (err)=>
sinon.assert.called(@logger.err)
done()