mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-16 16:28:42 +00:00
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:
parent
40316b0735
commit
561f54c1a3
2 changed files with 25 additions and 2 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue