From 0b841aacef5afca30d36840921c4b701e47e9c68 Mon Sep 17 00:00:00 2001 From: Jessica Lawshe Date: Wed, 13 Mar 2019 11:37:06 -0500 Subject: [PATCH] Merge pull request #1605 from sharelatex/jel-portal-team-data Refactor portals GitOrigin-RevId: c75eb5fc17b2755070dfe48eb85845c690fe0230 --- .../SubscriptionGroupHandler.coffee | 4 ++++ .../SubscriptionGroupHandlerTests.coffee | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee b/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee index 1effdf4504..ca7788fcc9 100644 --- a/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee +++ b/services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee @@ -35,6 +35,10 @@ module.exports = SubscriptionGroupHandler = logger.log user_id:user_id, subscription_id:subscription_id, partOfGroup:partOfGroup, "checking if user is part of a group" callback(err, partOfGroup) + getTotalConfirmedUsersInGroup: (subscription_id, callback=(err, totalUsers)->)-> + SubscriptionLocator.getSubscription subscription_id, (err, subscription)-> + callback(err, subscription?.member_ids?.length) + replaceInArray = (model, property, oldValue, newValue, callback) -> logger.log "Replacing #{oldValue} with #{newValue} in #{property} of #{model}" diff --git a/services/web/test/unit/coffee/Subscription/SubscriptionGroupHandlerTests.coffee b/services/web/test/unit/coffee/Subscription/SubscriptionGroupHandlerTests.coffee index bfd87f2f5a..878e9b25ec 100644 --- a/services/web/test/unit/coffee/Subscription/SubscriptionGroupHandlerTests.coffee +++ b/services/web/test/unit/coffee/Subscription/SubscriptionGroupHandlerTests.coffee @@ -23,13 +23,14 @@ describe "SubscriptionGroupHandler", -> @SubscriptionLocator = getUsersSubscription: sinon.stub() getSubscriptionByMemberIdAndId: sinon.stub() - getSubscription: sinon.stub() + getSubscription: sinon.stub().callsArgWith(1, null, @subscription) @UserCreator = getUserOrCreateHoldingAccount: sinon.stub().callsArgWith(1, null, @user) @SubscriptionUpdater = removeUserFromGroup: sinon.stub().callsArgWith(2) + getSubscription: sinon.stub().callsArgWith(2) @TeamInvitesHandler = createInvite: sinon.stub().callsArgWith(2) @@ -50,6 +51,7 @@ describe "SubscriptionGroupHandler", -> @Subscription = update: sinon.stub().yields() + findOne: sinon.stub().yields() @settings = siteUrl:"http://www.sharelatex.com" @@ -135,3 +137,18 @@ describe "SubscriptionGroupHandler", -> @Handler.isUserPartOfGroup @user_id, @subscription_id, (err, partOfGroup)-> partOfGroup.should.equal false done() + + describe "getTotalConfirmedUsersInGroup", -> + describe "for existing subscriptions", -> + beforeEach -> + @subscription.member_ids = ["12321", "3121321"] + it "should call the subscription locator and return 2 users", (done)-> + @Handler.getTotalConfirmedUsersInGroup @subscription_id, (err, count)=> + @SubscriptionLocator.getSubscription.calledWith(@subscription_id).should.equal true + count.should.equal 2 + done() + describe "for nonexistent subscriptions", -> + it "should return undefined", (done)-> + @Handler.getTotalConfirmedUsersInGroup "fake-id", (err, count)=> + should.not.exist(count) + done()