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:
committed by
sharelatex
parent
40316b0735
commit
561f54c1a3
@@ -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)->
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user