diff --git a/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee b/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee index a93286f73c..a4907f9544 100644 --- a/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee +++ b/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee @@ -28,6 +28,9 @@ module.exports = jobs = _.map subscription.member_ids, (user_id)-> return (cb)-> UserLocator.findById user_id, (err, user)-> + if err? or !user? + users.push _id:user_id + return cb() userViewModel = buildUserViewModel(user) users.push(userViewModel) cb() diff --git a/services/web/test/UnitTests/coffee/Subscription/SubscriptionGroupHandlerTests.coffee b/services/web/test/UnitTests/coffee/Subscription/SubscriptionGroupHandlerTests.coffee index f3cb94af75..b9cff7ef72 100644 --- a/services/web/test/UnitTests/coffee/Subscription/SubscriptionGroupHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Subscription/SubscriptionGroupHandlerTests.coffee @@ -76,11 +76,13 @@ describe "Subscription Group Handler", -> @UserLocator.findById.callsArgWith(1, null, {_id:"31232"}) it "should locate the subscription", (done)-> + @UserLocator.findById.callsArgWith(1, null, {_id:"31232"}) @Handler.getPopulatedListOfMembers @adminUser_id, (err, users)=> @SubscriptionLocator.getUsersSubscription.calledWith(@adminUser_id).should.equal true done() it "should get the users by id", (done)-> + @UserLocator.findById.callsArgWith(1, null, {_id:"31232"}) @subscription.member_ids = ["1234", "342432", "312312"] @Handler.getPopulatedListOfMembers @adminUser_id, (err, users)=> @UserLocator.findById.calledWith(@subscription.member_ids[0]).should.equal true @@ -88,3 +90,13 @@ describe "Subscription Group Handler", -> @UserLocator.findById.calledWith(@subscription.member_ids[2]).should.equal true users.length.should.equal @subscription.member_ids.length done() + + it "should just return the id if the user can not be found as they may have deleted their account", (done)-> + @UserLocator.findById.callsArgWith(1) + @subscription.member_ids = ["1234", "342432", "312312"] + @Handler.getPopulatedListOfMembers @adminUser_id, (err, users)=> + assert.deepEqual users[0], {_id:@subscription.member_ids[0]} + assert.deepEqual users[1], {_id:@subscription.member_ids[1]} + assert.deepEqual users[2], {_id:@subscription.member_ids[2]} + done() +